Получить локальное значение href из привязки (a) - программирование
Подтвердить что ты не робот

Получить локальное значение href из привязки (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;
}

I would expect that item.href would just return a short string of "sec/IF00.html", but instead it returns the full href, "http://www.thecurrentdomain.com/sec/IF00.html". Is there a way that я can pull out just the short href as put in the anchor <a> tag? Or do я lose that by natural HTML behavior?

I suppose я could use a string manipulation to do this, but it gets tricky because my local page may actually be "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", and my href field may or may not have a subdirectory in it (for ex href="page.html" vs. href="sub/page.html"), so я cannot always just remove every thing before the last slash.

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

4b9b3361

Ответ 1

Следующий код получает полный путь, где точки привязки:

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

а одно ниже получает значение атрибута href:

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

Ответ 2

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>

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

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

Все сделано только в одной строке кода. Это гибкий подход и не полагается на получение элемента, как предыдущие ответы.