0

以下のコードを使用して html を置き換えました。ブラウザでは動作していますが、iPad Safari ブラウザでは動作していません。これを解決するにはどうすればよいですか?

var text=$('#content_area').html();
var text2=text.replace('<span style="background-color: rgb(233, 207, 236);">proposes</span>'
, 'proposes'); 
$('#content_area').html(text2);
4

1 に答える 1

3

You're Doing It Wrong™. 生の HTML 文字列を変更しないでください。DOM を変更してください。

$( '#content_area span:contains("proposes")' ).replaceWith( 'proposes' );

背景色で選択することもできますが、信頼性は高くありません。この問題は、Mobile Safari が色を rgb() として保持せず、16 進形式で保持している可能性が高いため、次のようなものが機能する可能性があります。

$( '#content_area span' ).filter(function() {
    return ( $(this).css('background-color') === 'rgb(233, 207, 236)' 
          || $(this).css('background-color').toLowerCase() === '#e9cfec' );
}).replaceWith( 'proposes' );

最良の解決策は、スパンにクラスを追加するか、セレクターが明確になるようにそれらを確実に区別できる場合です。

于 2013-04-24T09:51:52.427 に答える