同じ単語のすべてのインスタンスを検索して置換しようとしていますが、.contains()を使用して大文字と小文字を区別しませんが、動作していないと思われます感受性が高い。jqueryの検索と置換
<p>some text</p>
<p>Some Text</p>
<p>Some TEXT</p>
jQuery.expr[':'].Contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
jQuery.expr[':'].contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
$('p').filter(":contains('some text')").each(function(){
$(this).text($(this).text().replace("some text", "replace with new text"));
});
これが唯一の理由は、あなたがここにJSフィドル上の例で見ることができ、同じケース の、最初のテキストを変更 http://jsfiddle.net/ka82V/
私はこれを好きであり、あなたに同意する、私たちはjQueryをオーバーライドすべきではない、それは悪い考えであろう。しかし、質問があります、i.testは何ですか? – Kevin
'.test'はJavaScriptの' RegExp'オブジェクトのメソッドで、引数(この場合 '$(this).text()')に対して正規表現を実行し、それが一致するかどうかに基づいてtrueまたはfalseを返します。この場合の 'RegExp'オブジェクトは、実際にはリテラルです(文字列' String'オブジェクトのように 'some string/i'です)。 'i'部分は大文字小文字を区別しないように指示します。 –
@ChrissPratt私は感謝を見る、私は学んだRegExpまだ、私は検索の問題を抱えていたと思いますが、交換するが、その作業、非常にありがとう – Kevin