我想做一個搜索並用相同的單詞的所有實例替換,並沒有通過使用.contains()大小寫敏感但它似乎不工作,並且是大小寫敏感。這裏是什麼,我現在有代碼:jquery搜索和替換w/.contains
<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'對象實際上是一個文字(就像「some string」是一個文字'String'對象):'/ some text/i'。 'i'部分告訴它不區分大小寫。 –
@ChrissPratt我看到謝謝,我還沒有學到RegExp,但我想這就是爲什麼我在搜索和替換時遇到麻煩,但是它的工作,非常感謝 – Kevin