एंकर (ए) टैग से स्थानीय href मान प्राप्त करें


121

मेरे पास एक लंगर टैग है जिसमें एक स्थानीय href मान है, और एक जावास्क्रिप्ट फ़ंक्शन है जो href मान का उपयोग करता है लेकिन इसे सामान्य रूप से जाने की तुलना में थोड़ा अलग स्थान पर निर्देशित करता है। टैग लग रहा है

<a onclick="return follow(this);" href="sec/IF00.html"></a>

और एक जावास्क्रिप्ट फ़ंक्शन जो दिखता है

baseURL = 'http://www.someotherdomain.com/';
function follow(item) {
    location.href = baseURL + item.href;
}

मुझे उम्मीद है कि item.hrefयह "सेकंड / IF00.html" का एक छोटा तार लौटाएगा, लेकिन इसके बजाय यह पूर्ण Href, "http://www.thecurrentdomain.com/sec/IF00.html" लौटाएगा। वहाँ एक रास्ता है कि मैं लंगर <a>टैग में डाल के रूप में सिर्फ कम href बाहर खींच सकता है ? या क्या मैं प्राकृतिक HTML व्यवहार द्वारा खो देता हूं?

मुझे लगता है कि मैं ऐसा करने के लिए एक स्ट्रिंग हेरफेर का उपयोग कर सकता हूं, लेकिन यह मुश्किल हो जाता है क्योंकि मेरा स्थानीय पृष्ठ वास्तव में "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html" हो सकता है, और मेरा Iref क्षेत्र हो सकता है या इसमें एक उपनिर्देशिका नहीं हो सकती है (पूर्व href="page.html"बनाम के लिए href="sub/page.html"), इसलिए मैं हमेशा अंतिम स्लैश से पहले हर चीज को हटा नहीं सकता।

आप आश्चर्यचकित हो सकते हैं कि मैं यह क्यों अनुरोध कर रहा हूं, और यह इसलिए है क्योंकि यह पृष्ठ को बहुत अधिक क्लीनर बना देगा। यदि यह संभव नहीं है कि केवल शॉर्ट हियर (जैसा कि एंकर <a>टैग में डाला जाए ), तो मैं शायद टैग में एक अतिरिक्त फ़ील्ड सम्मिलित कर सकता हूं, जैसे कि link="sec/IF00.html", लेकिन फिर से, यह थोड़ा गड़बड़ हो जाएगा।

जवाबों:


255

नीचे दिए गए कोड को पूर्ण पथ मिलता है, जहां लंगर इंगित करता है:

document.getElementById("aaa").href; // http://example.com/sec/IF00.html

जबकि नीचे वाले को hrefविशेषता का मूल्य मिलता है :

document.getElementById("aaa").getAttribute("href"); // sec/IF00.html

6

document.getElementById("link").getAttribute("href"); यदि आपके पास एक से अधिक <a>टैग हैं, उदाहरण के लिए:

<ul>
  <li>
    <a href="1"></a>
  </li>
  <li>
    <a href="2"></a>
  </li>
  <li>
    <a href="3"></a>
  </li>
</ul>

आप इसे इस तरह से कर सकते हैं: टैग document.getElementById("link")[0].getAttribute("href");की पहली सरणी तक पहुंचने के लिए <a>, या आपके द्वारा बनाई गई स्थिति पर निर्भर करता है।


2

यह कोड मेरे लिए दस्तावेज़ के सभी लिंक प्राप्त करने के लिए काम करता है

var links=document.getElementsByTagName('a'), hrefs = [];
for (var i = 0; i<links.length; i++)
{   
    hrefs.push(links[i].href);
}

0

Href प्रॉपर्टी किसी लिंक की href विशेषता का मान सेट या वापस करती है।

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);

-2
document.getElementById("aaa").href; //for example: http://example.com/sec/IF00.html

2
ओपी पहले से ही कोशिश कर रहा है, और यह उसे वांछित परिणाम नहीं देता है।
बोबोर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.