Как я могу найти все теги ‹a›, соответствующие определенному шаблону?

Я хочу сопоставить все теги a, которые имеют example.com/app в href. Как я могу сделать это с помощью JavaScript?


person Shamoon    schedule 14.08.2020    source источник
comment
поэтому создайте селектор, который соответствует атрибуту с помощью contains developer.mozilla.org / en-US / docs / Web / CSS / Attribute_selectors   -  person epascarello    schedule 14.08.2020
comment
См. idownvotedbecau.se/noattempt.   -  person FZs    schedule 14.08.2020


Ответы (2)


Вы можете использовать querySelectorAll с селектором атрибутов css:

document.querySelectorAll('a[href="www.example.com"]')
person Alberto Sinigaglia    schedule 14.08.2020
comment
Это самый эффективный способ? - person Shamoon; 14.08.2020
comment
@Shamoon, я полагаю, что больше, чем родной способ, нет, но я не тестировал его против другого алгоритмического способа, но, безусловно, он более чистый и поддерживаемый - person Alberto Sinigaglia; 14.08.2020

Вы можете выбрать все a элементы, а затем проверить, есть ли у них href со значением example.com/app:

const a = document.getElementsByTagName("a");
let els = [];

for (let i = 0; i < a.length; i++) {
  if ((a[i].getAttribute("href") == "example.com/app") || (a[i].getAttribute("href") == "https://example.com/app")) {
    els.push(a[i]);
  }
}

console.log(els);
<a href="example.com/app" id="1">1</a>
<a href="https://example.com/app" id="2">2</a>
<a href="example.com/app" id="3">3</a>
<a href="" id="4">4</a>
<a id="5">5</a>
<a href="https://example.com/app" class="6">6</a>
<a href="https://example.com/app">7</a>

person Someone Anonymous    schedule 14.08.2020