2010-06-18 14 views
7

मैं एक एंकर से href का मान प्राप्त करने का प्रयास कर रहा हूं। कोड इसjQuery से jQuery को हटाएं

var html = "<a href=' http://path/to/file.pdf'>File</a&gt ;";
alert(jQuery("a",html).attr("href"));

केवल उत्पादन मैं 'अनिर्धारित' है की तरह लग रहा है। मैं "http://path/to/file.pdf" प्राप्त करना चाहता हूं।

किसी भी मदद की बहुत सराहना की जाती है।

उत्तर

16

प्रयास करें:

jQuery(html).attr('href'); 

या अगर <a> टैग अपने उदाहरण से html में गहरी है:

jQuery(html).find('a').attr('href'); 

jQuery() समारोह डोम वस्तुओं में HTML तार में परिवर्तित कर देंगे, और एक jQuery वस्तु वापसी उन्हें आपके लिए शामिल करना

+0

अच्छा और संक्षिप्त। यह भी समझाने के लिए अच्छा काम है कि '$ (एचटीएमएल) 'व्यवसाय क्यों काम करता है। –

+1

+1। ओपी को सिर्फ एक नोट, मैं एक चर नाम के रूप में "एचटीएमएल" का उपयोग करने से बचूंगा, क्योंकि jquery में .html() नामक एक फ़ंक्शन होता है जिसका उपयोग अक्सर किया जाता है। – womp

+0

अन्य लोगों को यह देखने के लिए एक नोट के रूप में, आप 'jQuery (html) .get (0) .href' भी कर सकते हैं और वेनिला जावास्क्रिप्ट का उपयोग कर सकते हैं। –

1

आपका कोड यह काम करता है के रूप में आप चाहते हैं बनाने के लिए की तरह दिखना चाहिए:

var html = "<a href='http://path/to/file.pdf'>File</a>"; 
alert($(html).attr("href")) 
3

व्याख्या करने के लिए क्यों अपने विधि काम नहीं करता है - जब आप jQuery("a",html) करते हैं, आप के संदर्भ के अंदर एक तत्वों के लिए खोज रहे हैं एचटीएमएल में संग्रहीत तत्व।

वर्तमान में केवल एक चीज फ़ाइल पाठ है। उदाहरण के लिए यदि आपकी स्ट्रिंग को div में लपेटा गया था, तो यह काम करेगा। <div><a href='...'>File</a></div>


मुझे लगता है कि आप एक jQuery वस्तु बनाने के लिए कोई अन्य कारण है। यदि नहीं, और आप अतिरिक्त ओवरहेड नहीं चाहते हैं, तो आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं।

उदाहरण:http://jsfiddle.net/e3Gyc/

var html = "<a href='http://path/to/file.pdf'>File</a>"; 

var result = html.match(/href='([^']+)'/)[1]; 

अन्यथा जवाब है कि gnarf और Dzida दिया उत्कृष्ट हैं।

+0

ओयू, एक तरफ, 'jQuery ("ए", एचटीएमएल) के लिए व्याख्या करना बहुत अच्छा नहीं है ... दूसरी तरफ आप * gasp * पार्सिंग की वकालत कर रहे हैं RegExp के साथ एचटीएमएल ... जोखिम भरा कदम - +1 :) – gnarf

+0

@gnarf - + के लिए धन्यवाद। : ओ) नहीं, वकालत नहीं। मैं बहुत से वकील होने के लिए बहुत उदासीन हूं। ; ओ) बस एक बिंदु बनाकर कि आपको 'href' लाने पर एक jQuery ऑब्जेक्ट बनाने की आवश्यकता नहीं है, केवल एकमात्र उद्देश्य है। हालांकि, मामले की संभावना नहीं है। माना जाता है कि, इस समाधान की उपयोगिता संकुचित और खतरे से भरा हुआ है। +1 बैकचाचा। – user113716

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