Селектор Jquery для соответствия href в запросе игнорирования ссылок - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть несколько js на моем сайте, ссылки на которые содержат STRING, это выглядит так:

if($("a[href*='STRING']").length > 0){
    console.log("yes");
}

Возвращает true, если есть ссылка типа:

<a href="STRING.html">text</a>

Проблема в том, что он также возвращает true со ссылкой, подобной этой:

<a href="index.html?search=STRING">text</a>

Как я могу ограничить селектор jquery, чтобы смотреть только на первую часть href?

1 Ответ

3 голосов
/ 02 апреля 2019

Вы можете использовать filter() и сравнить со свойством pathname <a>, в котором нет строки запроса.

Элемент <a> обладает многими свойствами, аналогичными window.location, например host, search, protocol и т. Д.

pathname начинается после хоста домена и заканчивается до любого # или ?

var $hasString= $('a').filter(function() {
  console.log(this.pathname)
  return this.pathname.includes("STRING");
}).css('color', 'red');

console.log("Matches:", $hasString.length)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="STRING.html">No search </a><br/><br/>
<a href="index.html?search=STRING">Search</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...