2012-05-30 9 views
6

jQuery पर, मैं :contains पर एक समान चयनकर्ता की तलाश में हूं लेकिन मुझे तत्व टेक्स्ट के खिलाफ एक सही मिलान करने की आवश्यकता है। क्या वहाँ कोई?क्या टेक्स्ट के खिलाफ एकदम सही मैच करने के लिए कोई चयनकर्ता है?

<div>1</div> 
<div>12</div> 
<div>13</div> 
<div>135</div> 

तो अगर मैं text = 1 के लिए देखो मैं केवल मिलेगा पहला div

+0

आप एक div, या एक इनपुट क्षेत्र की तरह एक तत्व के मूल्य की तरह एक तत्व के innerHTML के लिए देख रहे हैं? – j08691

+0

@ j08691: मेरा प्रश्न अपडेट किया गया – StackOverflower

उत्तर

4

यह इतना किया जा सकता है:

var str = "whatever"; 

$(".elements").filter(function() { 
    return $(this).text() == str; 
}); 
+0

वापस नहीं लौटाएगा (यह) .text() == स्ट्रिंग 'अधिक उपयुक्त होगा, क्योंकि' आंतरिक HTML 'HTML संरचना के साथ-साथ टेक्स्ट-सामग्री को भी देखेगा? –

+0

@ डेविड थॉमस हाँ .. मुझे लगता है कि आप सही हैं। सामान्य समाधान के लिए यह बेहतर है। धन्यवाद! – VisioN

+1

जबकि उत्तर काम करता है, मैं वास्तव में हैरान हूं कि यह जोनाथन सैम्पसन के ऊपर स्वीकार किया गया था। =/ –

2
var search = '1'; 
$('div').filter(function() { 
    return $(this).text() == search; 
}).css('background','#f00'); 

DEMO

+0

मुझे लगता है कि यह केवल डीओएम तत्वों के लिए काम करता है, न कि पाठ नोड्स के लिए ... – elclanrs

+0

यदि पाठ '12' है और मैं '1'' की तलाश करता हूं तब तक मेल नहीं खाएगा जब तक कि मुझे कुछ याद न हो। यही वह नहीं है जिसे मैं ढूंढ रहा हूं, मुझे एक आदर्श मैच करने की ज़रूरत है। – StackOverflower

+0

@ TimmyO'Tool डेमो की जांच करें, यह वही कर रहा है जो आप चाहते हैं – thecodeparadox

11

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

$.extend($.expr[":"], { 
    exactly: function(element, index, details, collection){ 
     return $(element).text() === details[3]; 
    } 
}); 

$("div:exactly(Foo)").addClass("red"); 
$("div:exactly(230)").addClass("blu"); 

फिडल: http://jsfiddle.net/jonathansampson/YUQLF/

+0

ओहोह ... यह बहुत बढ़िया है। –

+0

@ जोनाथन सैम्पसन: यह काफी अच्छा लगता है। मैंने सोचा कि मैं विकल्प में एक बीलर लापता था। धन्यवाद! – StackOverflower

+1

जिज्ञासा से बाहर, क्या आप इस दृष्टिकोण के लिए दस्तावेज़ीकरण को इंगित कर सकते हैं? यह वह है जिसे मैंने पहले कभी नहीं देखा है (जहां तक ​​मुझे याद है)। –

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

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