Получить локальное значение href из тега anchor (a)



у меня есть тег привязки, который имеет местное значение href, и функция JavaScript, которая использует значение href, но направляет его в немного другое место, чем обычно. Тег выглядит как



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


и функция JavaScript, которая выглядит как



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


Я ожидал бы, что item.href просто вернет короткую строку " sec / IF00.html", но вместо этого он возвращает полный href, "http://www.thecurrentdomain.com/sec/IF00.html есть ли способ, которым я могу вытащить только короткая слишком, Как поставить на якорь <a> - тег? Или я теряю это естественным поведением HTML?



Я полагаю, что я мог бы использовать строку манипуляции, чтобы сделать это, но это становится сложно, потому что моя локальная страница может быть на самом деле "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", и мое поле href может иметь или не иметь подкаталога в нем (например href="page.html" и href="sub/page.html"), поэтому я не всегда могу просто удалить все до последнего Слэша.



вы можете задаться вопросом, почему Я прошу об этом, и это потому, что это просто сделает страницу намного чище. Если нет возможности получить только короткий href (как положить в якорь <a> tag), то я мог бы, вероятно, просто вставить дополнительное поле в тег, например link="sec/IF00.html", но опять же, это будет немного сложнее.

567   5  

5 ответов:

ниже код получает полный путь, где якорные точки:

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

в то время как один ниже получает значение :

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

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> теги, или зависит от состояния вы делаете.

свойство href устанавливает или возвращает значение атрибута href ссылки.

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);
document.getElementById("aaa").href; //for example: http://example.com/sec/IF00.html

грустно видеть, сколько людей дали такие неудобные и неудобные ответы. Вот самый простой способ получить href:

$("a").click(function(e){ 
      var hash = this.hash;
      alert(hash);
  });

все сделано всего в одной строке кода. Это гибкий и не зависит от получения elementId, как предыдущие ответы.

Comments

    Ничего не найдено.