Saya mencoba menggunakan huruf besar "berisi" secara tidak sensitif. Saya mencoba menggunakan solusi pada pertanyaan stackoverflow berikut, tetapi tidak berhasil:
Apakah ada jQuery yang tidak peka huruf besar / kecil: berisi selector?
Untuk kenyamanan, solusinya disalin di sini:
jQuery.extend(
jQuery.expr[':'], {
Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
});
Inilah kesalahannya:
Error: q is not a function
Source File: /js/jquery-1.4.js?ver=1.4
Line: 81
Di sinilah saya menggunakannya:
$('input.preset').keyup(function() {
$(this).next().find("li").removeClass("bold");
var theMatch = $(this).val();
if (theMatch.length > 1){
theMatch = "li:Contains('" + theMatch + "')";
$(this).next().find(theMatch).addClass("bold");
}
});
Saya menggunakan case sensitive asli "berisi" dalam skenario yang sama bekerja tanpa kesalahan. Apakah ada yang punya ide? Saya menghargainya.
:containsExact
,:containsExactCase
dan:containsRegex
selektor sekarang bekerja di semua versi jQuery.Jawaban:
Ini adalah apa yang saya gunakan dalam proyek saat ini, tidak ada masalah. Lihat apakah Anda lebih beruntung dengan format ini:
jQuery.expr[':'].Contains = function(a, i, m) { return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; };
Di jQuery 1.8, API untuk ini berubah, versi jQuery 1.8+ ini akan menjadi:
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) { return function( elem ) { return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; }; });
Anda bisa mengujinya di sini . Untuk detail lebih lanjut tentang 1.8+ pemilih khusus, lihat wiki Sizzle di sini .
sumber
icontains
, atau yang serupa.Perlu dicatat bahwa jawabannya benar tetapi hanya mencakup
:Contains
, dan bukan alias:contains
yang dapat menyebabkan perilaku tidak terduga (atau dapat digunakan dengan desain untuk aplikasi tingkat lanjut yang memerlukan pencarian sensitif dan tidak sensitif).Ini dapat diselesaikan dengan menduplikasi ekstensi untuk alias:
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; };
Butuh beberapa saat untuk mencari tahu mengapa itu tidak berhasil untuk saya.
sumber
:contains
. Saya pikir lebih jelas untuk membiarkan yang asli:contains
dan memanggil pemilih baru Anda:icontains
.Saya akan melakukan sesuatu seperti ini
$.expr[':'].containsIgnoreCase = function (n, i, m) { return jQuery(n).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; };
Dan Tinggalkan
:contains
Sendiri ...DEMO
Jadi mengapa jQuery tidak mendukungnya di perpustakaannya ?! jika semudah itu ...
karena Apakah kode Anda melewati kode turki?
sumber
Mungkin terlambat .... tapi,
Saya lebih suka pergi dengan cara ini ..
$.extend($.expr[":"], { "MyCaseInsensitiveContains": function(elem, i, match, array) { return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; } });
Dengan cara ini, Anda JANGAN merusak NATIVE '.contains' jQuery's ... Anda mungkin memerlukan yang default nanti ... jika dirusak, Anda mungkin akan kembali ke stackOverFlow ...
sumber
saya akan mengizinkan diri saya untuk menambahkan teman saya:
$.expr[":"].containsNoCase = function (el, i, m) { var search = m[3]; if (!search) return false; return eval("/" + search + "/i").test($(el).text()); };
sumber
Saya hanya bisa mengabaikan sensitivitas huruf jQuery sama sekali untuk mencapai apa yang saya inginkan menggunakan kode di bawah ini:
$.expr[":"].contains = $.expr.createPseudo(function(arg) { return function( elem ) { return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; }; });
Anda dapat menggunakan tautan ini untuk menemukan kode berdasarkan versi jQuery Anda untuk mengabaikan sensitivitas huruf besar / kecil, https://css-tricks.com/snippets/jquery/make-jquery-contains-case-insensitive/
Juga jika Anda ingin menggunakan: berisi dan melakukan beberapa pencarian, Anda mungkin ingin melihat ini: http://technarco.com/jquery/using-jquery-search-html-text-and-show-or-hide- demikian
sumber