2011-04-30 26 views
5

के साथ किसी भी पाठ के साथ (पाठ) होता है, एक का उपयोग कर सकते हैं:उपयोग कैसे करें: jQuery के साथ jQuery

$(":contains(hello)") 

यह किसी भी मिलान तत्व यह है कि पाठ "हैलो" शामिल वापस आ जाएगी।

मैं किसी भी पाठ से मिलान करने में सक्षम होना चाहता हूं, खासकर "हैलो :)"।

$(":contains(hello :))") // Doesn't work 
$(":contains('hello :)')") // Doesn't work 
$(":contains('hello :\)')") // Doesn't work 

मैं jQuery के साथ "हैलो :)" वाले तत्वों को कैसे ढूंढूं?

उत्तर

4

this answer कैसे देखें।

यह मूल रूप से .filter शामिल चारों ओर a known :contains bug पाने के लिए:

$('#demo').filter(function(i, el) { 
    return !!$(el).text().match(/hello :\)/); 
}); 

लाइव example

ध्यान दें कि यह के परिणाम पर .length प्रदर्शन कर आप एक मूल्य दे सकते हैं एक से अधिक 1 भले ही केवल एक ही तत्व क्योंकि तत्व के माता-पिता भी मिलान कर देंगे, कि पाठ शामिल है।

+0

+1;) – Alp

0
jQuery से

:।?

आप मेटा-वर्णों के किसी भी (जैसे उपयोग करना चाहते हैं "# $% & '() * +,/:; < => @ []^`{|} ~) एक नाम का एक शाब्दिक भाग के रूप में, आप दो बैकस्लैश के साथ चरित्र पलायन करना होगा: \\

तो यह

$(":contains('hello \\:\\)')") 
+2

यह [काम नहीं करता]] (http://jsfiddle.net/alexdickson/q3Uyh/)। – alex

+0

[क्या आपने इसे आजमाया?] (Http://jsfiddle.net/HrFGK/) –

+0

यह काम नहीं करता है ... –

1

यह एक खुला बग प्रतीत हो रहा है की कोशिश: http://bugs.jquery.com/ticket/5482

और वहाँ jakkob के इस statement है:

मैंने यह भी पाया है कि त्रुटि केवल आता अगर ब्रैकेट के बहुत अंत होता है अभिव्यक्ति में है।

+0

से मिलान करने की आवश्यकता है, हालांकि यह उत्तर समाधान प्रदान नहीं करता है। अच्छा मैशप के लिए –

0

त्वरित कोड:

jQuery.fn.contains = function(re) { 
    return this.filter(function(i, el) { 
    return !$(el).text().match(RegExp(re)); 
    }); 
}; 

इस तरह से आप कर सकते हैं:

$("*").contains(":\\)") // returns all elements in the page that contains ':)' 

नोट: शामिल() के लिए रेगुलर एक्सप्रेशन है (यानी आप जो कुछ भी एक regexp के लिए भाग निकले किए जाने की जरूरत से बचने के लिए की जरूरत को स्वीकार)

संबंधित मुद्दे