2010-06-22 11 views
18

मैं अपने पृष्ठ का पहला लिंक ढूंढने की कोशिश कर रहा हूं जो यूआरएल "AAA" (उदाहरण) के लिए उपयुक्त है।अपने href विशेषता के आधार पर किसी पृष्ठ में एक लिंक कैसे खोजें?

मैं पहली बार इस href के साथ लिंक प्राप्त करने की कोशिश:

$('a[href$="AAA"]')[0] 

तो इस लिंक

$('a[href$="AAA"]')[0].attr("title"); 

के शीर्षक विशेषता को लक्ष्य:

$('a[href$="AAA"]') 

फिर selec पहले एक लेकिन यह सब मुझे प्रत्येक चरण में "अपरिभाषित" वापस कर देता है। यह कैसे करें?

उदाहरण लंगर:

<a href="contents/medias/images/news/news_test_big.jpg" title="Nouvelle réalisation en ligne 1 FR" target="_blank" class="imageLink"> 
+0

यहां लिंक में से एक है: धन्यवाद ¨! – daviddarx

+0

@ डेविडडरक्स मैंने आपके प्रश्न में उदाहरण जोड़ा है। –

उत्तर

19

कैसे के बारे में:

$("a[href='AAA']").first().attr("title") 
// or 
$("a[href='AAA']:first").attr("title") 

तो यह निर्भर करता है कि आप href 'एएए' के ​​बराबर होना चाहते हैं, यह होता है, शुरू होता है/इसके साथ समाप्त होता है। उस स्थिति में आप उदाहरण के लिए href= लेकिन href$= का उपयोग नहीं करेंगे। Neil's answer में आपके द्वारा उपयोग किए जाने वाले विभिन्न प्रकार के परीक्षण शामिल हैं।

यदि आप अपना एचटीएमएल कोड पोस्ट कर सकते हैं तो इससे भी मदद मिलेगी।

+0

$ ("एक [href = 'एएए']: पहला") –

+0

@neil भी काम करेगा: सच है, मैंने इसे अपने उत्तर – marcgg

+0

में जोड़ा है, मैं इसे आजमाऊंगा, मैं कुछ मिनटों में वापस आऊंगा – daviddarx

3

मान लीजिए कि आपके पास एक मिलान करने वाला लिंक है (यानी, एएए के साथ समाप्त होता है)।

$('a[href="AAA"]:first').attr('title'); 

काम करना चाहिए।

attr के लिए आपको अपरिभाषित होने का कारण यह है कि क्वेरी के परिणामस्वरूप इंडेक्सर लागू करने के बाद यह एक jQuery ऑब्जेक्ट नहीं है, यह वास्तविक DOM तत्व है। attr का उपयोग करने के लिए, इसे अभी भी एक jQuery ऑब्जेक्ट होना चाहिए। :first चयनकर्ता का उपयोग क्वेरी के परिणामों को पहले मिलान करने वाले को कम कर देगा। चूंकि attr पहले मिलान करने वाले विशेषता का मान वापस कर देगा, यह कड़ाई से जरूरी नहीं है, लेकिन मुझे लगता है कि यह इरादा स्पष्ट बनाता है। यदि आप विशेषता मान सेट करने के लिए जाते हैं, तो attr सभी मेल खाने वाले तत्वों पर लागू होगा, इसलिए, इस मामले में, यह महत्वपूर्ण है - इस प्रकार मैं स्पष्टता के लिए दोनों स्थानों पर इसका उपयोग करूंगा।

+0

+1 - यह सच है, '[0] 'के बारे में अच्छा बिंदु - यही वजह है कि त्रुटि हुई। लेकिन '$ ('एक [href $ =" एएए "]') [0] .attr (" शीर्षक "); 'बहुत दूर चला जाता है - यह' अपरिभाषित 'नहीं लौटाता है, लेकिन अपवाद चलाता है:" .attr है एक समारोह नहीं " – Kobi

2

जिस तरह से आपने इसे लिखा है, आप "एएए" के साथ समाप्त होता है। क्या यह आपका इरादा है?

  • $= मतलब है
  • ^= का अर्थ है "के साथ समाप्त होता"
  • ~= का अर्थ है "के साथ शुरू होता है" "शामिल है"

संदर्भ: jQuery Selectors

6

$('a[href$="AAA"]') ठीक काम करना चाहिए, लेकिन यह खोज href एस के लिए एए के साथ ए।

प्रयास करें: $('a[href="AAA"]') - बराबर एएए
या: $('a[href*="AAA"]') - एएए

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