Получить локальное значение 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", но опять же, это будет немного сложнее.
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);
грустно видеть, сколько людей дали такие неудобные и неудобные ответы. Вот самый простой способ получить href:
$("a").click(function(e){ var hash = this.hash; alert(hash); });все сделано всего в одной строке кода. Это гибкий и не зависит от получения elementId, как предыдущие ответы.
Comments