2010-02-11 8 views
21
<div> 
    <a> 
     Text1 
     <img alt="" stc="" /> 
    </a> 
    <a> 
     Text2 
    </a> 
</div> 

मैं text=text2 वाले सभी एंकर तत्वों का चयन करना चाहता हूं। मैं कुछ इस तरह की तलाश में हूँ:jQuery में विशिष्ट आंतरिक HTML मान के साथ सभी लिंक प्राप्त करना

$('a[text=Text2]') 

संपादित करें: क्यों इस काम नहीं कर रहा? कुछ कुछ कारण से, यह इस प्रारूप में होने की जरूरत है:

$('div').find('a').find(':contains("Text2")') 

उत्तर

36

आप पूछ क्यों यह काम नहीं करता :

$('div').find('a').find(':contains("Text2")') 

कारण है, .find() बच्चों तत्वों खोज करेंगे, तो आप .filter() चाहते हैं (क्योंकि आप पहले से ही a चयनित - या आप एक खोज करने के लिए :contains जोड़ें:

$('div').find('a').filter(':contains("Text2")'); 
$('div').find('a:contains("Text2")'); 
+0

'.filter()' के बारे में भूल गए। धन्यवाद। –

+0

मुझे आश्चर्य है कि आपने शुरुआती चयनकर्ता को $/'div a: include ("text2")' में क्यों नहीं मिला है) खोजें/फ़िल्टर श्रृंखला के बजाय? jQuery चयनकर्ता बस सीएसएस चयनकर्ताओं की तरह वंशजों को पार करते हैं। –

+0

@ केविन ने ओप में टिप्पणी के कारण: 'कुछ कारणों से इसे इस प्रारूप में होना जरूरी है' – gnarf

6

आप contains लिए देख रहे हैं:

$("a:contains('text2')") 
+0

मैं सवाल अपडेट किया गया। –

2

एक अतिरिक्त नोट के रूप में, बल्कि एक लिंक यह बेहतर हो सकता है अंदर सटीक पाठ के लिए स्कैनिंग से विशेषताओं के लिए स्कैनिंग जा करने के लिए है, उदा

<div class="farm-market-items"> 
    <a class="market-item" data-item-type="seed" data-item-id="817"> 
    Carrot Seed 
    <img alt="" src="" class="item-thumb" /> 
    </a> 
    <a class="market-item" data-item-type="seed" data-item-id="25"> 
    Spinach Seed 
    </a> 
    <a class="market-item" data-item-type="tree" data-item-id="981"> 
    Pear Tree 
    </a> 
</div> 

अब आप (सही ढंग से) स्कैन कर सकते हैं के लिए:

all_seeds = $('a[data-item-type="seed"]'); 

(मैं डेटा- * विशेषताएं के एक बड़े प्रशंसक रहा हूँ।)

+0

किसी कारण से इसे उपरोक्त प्रारूप में होना आवश्यक है। इसलिए मुझे इसे केवल आंतरिक पाठ से पूछना चाहिए। –

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