Tôi đang cố gắng thực hiện tìm kiếm và thay thế bằng tất cả các phiên bản của cùng một từ, không phân biệt chữ hoa chữ thường bằng cách sử dụng .contains() nhưng có vẻ như nó không hoạt động. nhạy cảm. Đây là mã của những gì tôi có bây giờ:Jquery Tìm kiếm và Thay thế 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"));
});
này chỉ thay đổi văn bản đầu tiên, bởi vì trong những trường hợp tương tự bạn có thể nhìn vào ví dụ về fiddle js đây http://jsfiddle.net/ka82V/
Tôi thích cái này và đồng ý với bạn, rằng chúng ta không nên ghi đè jQuery, đó sẽ là một ý tưởng tồi. Nhưng có một câu hỏi, i.test là gì? – Kevin
'.test' là một phương thức trên đối tượng' RegExp' trong JavaScript, chạy biểu thức chính quy đối với đối số (trong trường hợp này là '$ (this) .text()') và trả về true hoặc false dựa trên đối số . Đối tượng 'RegExp' trong trường hợp này thực sự là một chữ (giống như" một số chuỗi "là một đối tượng' String' theo nghĩa đen): '/ some text/i'. Phần 'i' bảo nó không phân biệt chữ hoa chữ thường. –
@ChrissPratt Tôi thấy cảm ơn, tôi chưa học RegExp, tôi đoán đó là lý do tại sao tôi gặp rắc rối với việc tìm kiếm và thay thế, nhưng nó hoạt động, cảm ơn bạn rất nhiều – Kevin