2009-12-06 12 views
9

मैं इस कोड का टुकड़ा देखा:jQuery .search() किसी भी स्ट्रिंग

$("ul li").text().search(new RegExp("sometext", "i")); 

और जानना चाहते हैं कि यह किसी भी स्ट्रिंग के लिए बढ़ाया जा सकता है चाहता था?

मैं निम्नलिखित को पूरा करना चाहते हैं, लेकिन यह काम dosen't:

$("li").attr("title").search(new RegExp("sometext", "i")); 

इसके अलावा, किसी को भी इस समारोह के लिए jQuery प्रलेखन के लिए एक लिंक है? मैं स्पष्ट रूप से googling में विफल।

उत्तर

25

search() एक स्ट्रिंग विधि है।

आप फ़ंक्शन पर प्रत्येक<li> तत्व निष्पादित कर रहे हैं। आपको each का आह्वान करने की आवश्यकता है और this संदर्भ का उपयोग करें।

उदाहरण:

$('li').each(function() { 
    var isFound = $(this).attr('title').search(/string/i); 
    //do something based on isFound... 
}); 
+1

मैं $ (this) .attr ('शीर्षक') पहले से ही एक स्ट्रिंग है लगता है। क्या हमें अभी भी इसे फिर से स्ट्रिंग में बदलने की आवश्यकता है? –

2

आह, कि हो सकता है क्योंकि RegExp jQuery नहीं है। :)

this page आज़माएं। jQuery.attr एक स्ट्रिंग वापस नहीं करता है जिससे निश्चित रूप से इस संबंध में कारण होगा। सौभाग्य से मेरा मानना ​​है कि आप स्ट्रिंग प्रतिनिधित्व को वापस करने के लिए केवल .text() का उपयोग कर सकते हैं।

कुछ की तरह:

$("li").val("title").search(/sometext/i)); 
6
if (str.toLowerCase().indexOf("yes") >= 0) 

या,

if (/yes/i.test(str)) 
संबंधित मुद्दे