क्या :contains jQuery चयनकर्ता का कोई मामला असंवेदनशील संस्करण है या क्या मुझे सभी तत्वों पर लूपिंग करके मैन्युअल रूप से काम करना चाहिए और अपनी स्ट्रिंग में अपनी .text() की तुलना करना चाहिए?क्या कोई मामला असंवेदनशील jQuery है: चयनकर्ता शामिल है?
उत्तर
क्या मैं jQuery 1.2 के लिए कर रही है समाप्त हो गया है:
jQuery.extend(
jQuery.expr[':'], {
Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
});
यह एक है करने के लिए jQuery का विस्तार होगा: चयनकर्ता मामले असंवेदनशील है कि शामिल हैं,: चयनकर्ता अपरिवर्तित रहता है में शामिल है।
संपादित करें: jQuery 1.3 (धन्यवाद @ user95227) और बाद के लिए आप की जरूरत
jQuery.expr[':'].Contains = function(a,i,m){
return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
संपादित करें: जाहिर
(a.textContent || a.innerText || "")
बजाय
jQuery(a).text()
का उपयोग करके सीधे डोम तक पहुँचने
पिछली अभिव्यक्ति में इसे काफी तेज करता है इसलिए अपने जोखिम पर आज़माएं अगर गति एक मुद्दा है। (देखें @John के question)
नवीनतम संपादित करें: jQuery 1.8 के लिए यह होना चाहिए:
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
return function(elem) {
return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
बस लोगों को यह बताना चाहता था कि jQuery 1.3 के लिए @Pat और दूसरों द्वारा वर्णित समाधान 1.4.3 के लिए भी काम करता है। –
लिंक के बाद से जॉन के प्रश्न/उत्तर से लिंक हटा दिया गया था: http://stackoverflow.com/questions/1407434/is-there-any-way-to-speed-up-this-solution-for-a-case -insensitive-jquery-contai – Mottie
यह jQuery 1.8 के लिए काम नहीं करता है। एक अद्यतन संस्करण के लिए नीचे seagullJS का उत्तर देखें - http://stackoverflow.com/a/12113443/560114 –
अगर किसी (मेरे जैसे) रुचि रखता है क्या करते एक और मीटर [3] में मतलब में परिभाषा शामिल है।
कुंजी/LEGEND: पैरामीटर चयनकर्ता निर्धारित करने में उपयोग के लिए jQuery द्वारा उपलब्ध कराए:
आर तत्वों की = jQuery सरणी छानबीन की जा रही। (जैसे: r.length = तत्वों की संख्या)
मैं = तत्व के सूचकांक वर्तमान में जांच के दायरे में, भीतर सरणी आर।
= वर्तमान में जांच के तहत तत्व। चयनकर्ता कथन को इसके मिलान किए गए परिणामों में शामिल करने के लिए सच होना चाहिए।
मीटर [2] = नोडनाम या * जिसे हम ढूंढ रहे हैं (कोलन के बाएं)।
मीटर [3] = पैरा में शामिल: चयनकर्ता (पैरा)। आम तौर पर में: इंडेक्स संख्या: nth-of-type (5), या में एक स्ट्रिंग: रंग (नीला)।
jQuery 1.3 के रूप में, यह विधि बहिष्कृत है।यह काम करने के लिए प्राप्त करने के लिए एक समारोह के रूप में परिभाषित किया जा करने की जरूरत है:
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;
};
अद्यतन कोड 1.3 में अच्छा काम करता है, लेकिन "शामिल है" पिछले उदाहरण के विपरीत पहले अक्षर पर लोअर केस होना चाहिए।
मुझे लगता है कि वह एक अलग कार्य चाहता था ताकि दोनों 'इसमें शामिल हैं' और 'शामिल हैं' दोनों एक साथ काम करेंगे। – joshperry
": चयनकर्ता अपरिवर्तित बनी हुई है।" –
यह वैकल्पिक रूप से केस संवेदी बनाने के लिए: http://bugs.jquery.com/ticket/278
$.extend($.expr[':'], {
'containsi': function(elem, i, match, array)
{
return (elem.textContent || elem.innerText || '').toLowerCase()
.indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
तो :containsi
के बजाय :contains
एक नया फ़ंक्शन जोड़ना मुझे ओवरराइट करने से सबसे अच्छा है, अब मैं इस विकल्प का उपयोग करता हूं (एक आकर्षण की तरह काम करता है) –
इसे मानक jquery लाइब्रेरी में जोड़ा जाना चाहिए – user482594
एक बदलाव है कि थोड़ा तेज प्रदर्शन करने के लिए लगता है और वह भी की अनुमति देता है नियमित अभिव्यक्ति उपयोग करते हैं:
jQuery.extend (
jQuery.expr[':'].containsCI = function (a, i, m) {
//-- faster than jQuery(a).text()
var sText = (a.textContent || a.innerText || "");
var zRegExp = new RegExp (m[3], 'i');
return zRegExp.test (sText);
}
);
इतना ही नहीं केस-संवेदी है, लेकिन यह जैसे शक्तिशाली खोज की अनुमति देता है:
$("p:containsCI('\\bup\\b')")
(मिलान "ऊपर" या "ऊपर", लेकिन "ऊपरी" "वेकअप", आदि)$("p:containsCI('(?:Red|Blue) state')")
(मेल खाता है "लाल राज्य" या "नीले राज्य", लेकिन "राज्य अप", आदि)$("p:containsCI('^\\s*Stocks?')")
("स्टॉक" या "स्टॉक" मेल है, लेकिन केवल के शुरू में नहीं अनुच्छेद (किसी भी अग्रणी सफेद जगह को अनदेखा कर रहा है)।
jQuery 1.8 में आप ..
मैं इस तरह से जाना पसंद करते हैं
jQuery.expr[":"].icontains = jQuery.expr.createPseudo(function (arg) {
return function (elem) {
return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
उपयोग करने के लिए देर से हो सकता है की आवश्यकता होगी .... लेकिन,
$.extend($.expr[":"], {
"MyCaseInsensitiveContains": function(elem, i, match, array) {
return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
इस तरह, आप jQuery के नेटिव 'के साथ छेड़छाड़ नहीं करते हैं। ... आपको डिफ़ॉल्ट की आवश्यकता हो सकती है बाद में ... अगर साथ छेड़छाड़ की, आप अपने आप को वापस Stackoverflow ... उपयोग करने के लिए नीचे दिए गए कोड
उपयोग करने के लिए मिल सकती है ": शामिल है" एक HTML कोड से उसका केस संवेदनशीलता अनदेखी पाठ को खोजने के लिए,
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
return function(elem) {
return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
$("#searchTextBox").keypress(function() {
if($("#searchTextBox").val().length > 0){
$(".rows").css("display","none");
var userSerarchField = $("#searchTextBox").val();
$(".rows:contains('"+ userSerarchField +"')").css("display","block");
} else {
$(".rows").css("display","block");
}
});
आप इस पर अधिक जानकारी प्राप्त करने के लिए इस लिंक का उपयोग कर सकता है, Use jQuery to search HTML text and show or hide accordingly
तुम भी इस लिंक का उपयोग कर सकते हैं अपने jQuery संस्करण के आधार पर कोड igonring मामले को खोजने के लिए, Make jQuery :contains Case-Insensitive
मुझे निम्नलिखित काम करने के साथ एक ही समस्या थी ...
// This doesn't catch flac or Flac
$('div.story span.Quality:not(:contains("FLAC"))').css("background-color", 'yellow');
यह काम करता है और एक विस्तार
$('div.story span.Quality:not([data*="flac"])').css("background-color", 'yellow');
यह भी काम करता है, लेकिन शायद "मैन्युअल रूप से पाशन" श्रेणी में आता है के लिए की जरूरत ....
$('div.story span.Quality').contents().filter(function()
{
return !/flac/i.test(this.nodeValue);
}).parent().css("background-color", 'yellow');
- 1. क्या jQuery में कोई स्टाइल चयनकर्ता है?
- 2. केस-असंवेदनशील jQuery के लिए इस समाधान को तेज करने का कोई तरीका है: चयनकर्ता शामिल है?
- 3. jQuery: "चयनकर्ता नहीं है" चयनकर्ता?
- 4. क्या मामला बेहतर है?
- 5. क्या एसक्यूएल में कोई मामला है जहां एक सबक्वायरी शामिल होने से अधिक कुशल है?
- 6. jQuery क्या तेज़ है: चयनकर्ता या विधियां?
- 7. चयनकर्ता इंजन क्या है?
- 8. क्या कोई सीएसएस है: दृश्यमान (स्क्रॉल) चयनकर्ता?
- 9. क्या कोई सीएसएस "हैशिल्डेरेन" चयनकर्ता है?
- 10. क्या कोई एक्सएसएल "शामिल है" निर्देश है?
- 11. क्या String.IsNullOrEmpty ऑपरेटर के लिए कोई मामला है?
- 12. आईडी चयनकर्ता है तो JQuery चयनकर्ता तर्क विफल रहता है। मूल्य में कोई भी समाधान?
- 13. jQuery: शामिल() चयनकर्ता अपरकेस और छोटे अक्षरों मुद्दा
- 14. jQuery: जांचें कि क्या jQuery ऑब्जेक्ट में शामिल है (शामिल) सटीक DOM तत्व
- 15. क्या कोई सी # केस असंवेदनशील बराबर ऑपरेटर है?
- 16. क्या ट्विटर बूटस्ट्रैप में jQuery शामिल है?
- 17. एसएचए -256 केस असंवेदनशील है?
- 18. क्या कोई तत्व चुनने वाले सभी तत्व प्राप्त करने के लिए कोई jQuery चयनकर्ता है?
- 19. jQuery चयनकर्ता
- 20. क्या कोई jQuery जैसी सीएसएस/एचटीएमएल चयनकर्ता है जिसका उपयोग सी # में किया जा सकता है?
- 21. जांच कर रहा है कि कोई jQuery चयनकर्ता कोई परिणाम नहीं मिला है
- 22. क्या एक विशिष्ट मूल तत्व एन स्तर को खोजने के लिए कोई jQuery चयनकर्ता/विधि है?
- 23. jQuery onclick चयनकर्ता काम नहीं करता है
- 24. jQuery चयनकर्ता और jQuery
- 25. jQuery चयनकर्ता
- 26. jQuery चयनकर्ता
- 27. jQuery चयनकर्ता
- 28. JQuery - मैं केस-असंवेदनशील 'विशेषता युक्त' चयनकर्ता कैसे लिख सकता हूं?
- 29. jQuery चयनकर्ता
- 30. jQuery prevUntil() प्रारंभ चयनकर्ता और अंत चयनकर्ता
jQuery 8.1 के लिए बिना + यह जांचें [उत्तर] (http://stackoverflow.com/a/2196683/1671639) – Praveen
^यह 1.8.1 है, 8.1 नहीं। – TylerH