Получение значения href в HTML без разрешения URL - PullRequest
2 голосов
/ 26 мая 2020

У меня есть статистика c HTML, которую я генерирую с помощью скрипта.

Мои гиперссылки в HTML выглядят так:

<a href="corners/xyz.csv">Data</a>

* Каталог 1007 * They corners находится в том же каталоге, где находится HTML. Когда я открываю это в своем браузере, браузер разрешает URL-адрес, который выглядит примерно так:

/home/user/blah/blah1/corners/xyz.csv

Я хочу использовать значение href в какой-то части моей функции javascript. Когда я делаю getElementsByTagName("a")[0], я получаю весь разрешенный URL.

Но все, что мне нужно, это corners/xyz.csv

Есть ли способ получить текст, присутствующий в теге href, без разрешить это?

Ответы [ 6 ]

1 голос
/ 26 мая 2020

За этот ответ Я обнаружил, что свойство преобразуется в абсолютный URL, а атрибут остается строковым значением, которое вы хотите. В вашем случае (поскольку вы захватываете все теги a) вы захотите сопоставить их.

let rawHrefs = [...document.getElementsByTag('a')]
  .map(el => el.getAttribute('href'));
1 голос
/ 26 мая 2020

используйте функцию Element.getAttribute () , чтобы получить значение атрибута href. Эта функция возвращает значение указанного атрибута.

getElementsByTagName("a")[0].getAttribute('href')

console.log(document.getElementsByTagName("a")[0].href)
console.log(document.getElementsByTagName("a")[0].getAttribute('href'))
<a href="corners/xyz.csv">Data</a>
1 голос
/ 26 мая 2020

pathname - это недвижимость, которую вы ищете,

console.log(document.querySelector('a').pathname);
<a href="corners/xyz.csv">Data</a>
1 голос
/ 26 мая 2020

document.getElementsByTagName("a")[0].getAtrribute("href") подойдет.

1 голос
/ 26 мая 2020

document.getElementsByTagName("a")[0].getAttribute("href");

1 голос
/ 26 мая 2020

Прочтите атрибут, а не свойство

var anchor = document.querySelector("a")
console.log(anchor.getAttribute('href'))
<a href="foo/bar.baz"></a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...