रनटाइम पर href विशेषता सेट करना


202

JQuery का उपयोग करके रन टाइम hrefमें <a>टैग की विशेषता सेट करने का सबसे अच्छा तरीका क्या है ?

इसके अलावा, आपको jQuery का उपयोग करके टैग की hrefविशेषता का मूल्य कैसे मिलेगा <a>?

जवाबों:


378

HTML एलिमेंट की एक विशेषता को पाने या सेट करने के लिए, आप element.attr()jQuery में फंक्शन का उपयोग कर सकते हैं ।

Href विशेषता प्राप्त करने के लिए , निम्नलिखित कोड का उपयोग करें:

var a_href = $('selector').attr('href');

Href विशेषता सेट करने के लिए, निम्नलिखित कोड का उपयोग करें:

$('selector').attr('href','http://example.com');

दोनों मामलों में, कृपया उपयुक्त चयनकर्ता का उपयोग करें। यदि आपने लंगर तत्व के लिए कक्षा निर्धारित की है, तो उपयोग करें '.class-name'और यदि आपने लंगर तत्व के लिए आईडी निर्धारित की है, तो उपयोग करें '#element-id'।


1
मैंने इसका उपयोग href प्राप्त करने के लिए किया। चेतावनी ($ ( "# प्रकाशित-लिंक") attr ( "href")।); और इसने मुझे "अपरिभाषित" चेतावनी दी।
— गौतमलकुम

3
इसका शायद मतलब है कि आपका प्रकाशन-लिंक एक आईडी के बजाय एक वर्ग है। कोशिश: चेतावनी ($ ("। प्रकाशित-लिंक")। attr ("href")); इसके बजाय
— जिम टोलन

3
@ lakum4stackof: यदि आप सटीक पोस्ट कर रहे हैं तो यह मदद करेगा <a> टैग आप यहाँ उपयोग कर रहे हैं :)

आह क्षमा करें। तुम सही हो। मैंने कक्षा लागू की है और मैंने jquery कोड में '#' का उपयोग किया है। इसने चेतावनी के साथ काम किया ($ ("। प्रकाशित-लिंक")। attr ("href")); बहुत बहुत धन्यवाद। :)
— गोतलामकुम

18

JQuery 1.6+ में इसका उपयोग करना बेहतर है:

$(selector).prop('href',"http://www...")करने के लिए सेट मूल्य, और

$(selector).prop('href')मान प्राप्त करने के लिए

संक्षेप में, DOM ऑब्जेक्ट .propपर मान प्राप्त करता है और सेट करता है , और HTML में मान प्राप्त करता है और सेट करता है । यह कुछ संदर्भों में थोड़ा तेज और संभवतः अधिक विश्वसनीय बनाता है।.attr.prop


1
सहमत '.प्रॉप' को पूर्ण पथ मिलेगा जैसे: http: //www.../index.html जबकि .attr केवल मिलेगा: 'index.html'
— DevWL

14

के hrefसाथ विशेषता सेट करें

$(selector).attr('href', 'url_goes_here');

और इसका उपयोग करके पढ़ें

$(selector).attr('href');

जहां "चयनकर्ता" आपके <a>तत्व के लिए कोई भी मान्य jQuery चयनकर्ता है (".myClass" या "#myId" सबसे सरल नाम रखने के लिए)।

उम्मीद है की यह मदद करेगा !


मैंने इसका उपयोग href प्राप्त करने के लिए किया है। चेतावनी ($ ( "# प्रकाशित-लिंक") attr ( "href")।); और इसने मुझे "अपरिभाषित" चेतावनी दी।
— गौतमलकुम

@ lakum4stackof आपने सबसे अधिक संभावना यह बताई है कि hrefआपके चयनकर्ता सही है, यह मानते हुए कि आपने अपनी विशेषता सेट कर ली है।
— वैलेंटाइन फ्लैशेल

2
कोशिश: चेतावनी ($ ("। प्रकाशित-लिंक")। attr ("href")); जैसा कि आपका तत्व आईडी के बजाय एक वर्ग हो सकता है। वास्तव में, शायद $ का उपयोग कर रहे हैं (यह) यदि यह आपके इवेंट के अंदर है
— jim tollan

2

तीन समाधानों के लिए लघु प्रदर्शन परीक्षण तुलना:

  1. $(".link").prop('href',"https://example.com")
  2. $(".link").attr('href',"https://example.com")
  3. document.querySelector(".link").href="https://example.com";

यहां छवि विवरण दर्ज करें

यहां आप अपने आप को https://jsperf.com/a-href-js-change द्वारा परीक्षण कर सकते हैं


हम निम्नलिखित तरीकों से href मान पढ़ सकते हैं

  1. let href = $(selector).prop('href');
  2. let href = $(selector).attr('href');
  3. let href = document.querySelector(".link").href;

यहां छवि विवरण दर्ज करें

यहां आप खुद से https://jsperf.com/a-href-js-read टेस्ट कर सकते हैं


अच्छा! अजीब तरह से, मुझे आपके विपरीत परिणाम मिल रहे हैं, लेकिन उन्हें स्वयं चलाने में सक्षम होना दिलचस्प है।
— होल्डऑफ ह्यूंगर

@HoldOffHunger हाँ - बहुत दिलचस्प है - आपकी मशीन, ओएस और ब्राउज़र क्या है?
— कामिल कीवल्स्कीस्की

1
FF59, Win10। परिणाम फिर से थोड़े बदले हुए प्रतीत होते हैं (शायद यह टैब के # खुलने पर निर्भर करता है), लेकिन फिर भी अधिकतर समान: imgur.com/a/MLDnTWM मशीन: 10 साल पुराना इंटेल बोर्ड (dp55wg), 3.1 जीएचजी क्वाड-कोर, 16gb ddr3 ram, gtx1070
— होल्डऑफहुंगेर

1
<style>
a:hover {
    cursor:pointer;
}
</style>

<script type="text/javascript" src="lib/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(".link").click(function(){
        var href = $(this).attr("href").split("#");
        $(".results").text(href[1]);
    })
})
</script>



<a class="link" href="#one">one</a><br />
<a class="link" href="#two">two</a><br />
<a class="link" href="#three">three</a><br />
<a class="link" href="#four">four</a><br />
<a class="link" href="#five">five</a>


<br /><br />
<div class="results"></div>

1
कोड-ओनली उत्तर उतने सहायक नहीं होते हैं जितने उत्तर कार्य कोड और सहायक स्पष्टीकरण होते हैं। इस मामले में, यह 5 साल की उम्र में इस उत्तर को समझा जाएगा।
— सोमनाथ मुलुक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.