Настройте таргетинг на все ссылки, кроме ссылок в DIV, используя jQuery - PullRequest
1 голос
/ 23 марта 2020

Я хочу настроить таргетинг на все ссылки в .entry-content, кроме тех, что в DIV. Итак, у меня есть это:

$(document).ready(function($) {

  // Target all links in entry-content except those in DIVs
  $('.entry-content a')
    .not($('div a'))
    .not('[href*="' + window.location.host + '"]')
    .attr('rel', 'nofollow noopener noreferrer')
    .attr('target', '_blank');

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="entry-content">
  <div><a href="#">Exclude this</a></div>
  <p><a href="#">Include only this</a></p>
  <a href="#">Or any other link as long as it's not in DIV</a>
</div>

Эта часть не работает: .not($( 'div a' ))

Любая помощь будет оценена. Спасибо!

1 Ответ

2 голосов
/ 23 марта 2020

Используйте > для нацеливания на прямых потомков.

.not('.entry-content>div>a')

Пример:

$(document).ready(function($) {

 // Target all links in entry-content except those in DIVs
 $('.entry-content a')
   .not('.entry-content>div>a')
   .not('[href*="' + window.location.host + '"]')
   .attr('rel', 'nofollow noopener noreferrer')
   .attr('target', '_blank')
   .css('color', 'red');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="entry-content">
 <div><a href="#">Exclude this</a></div>
 <p><a href="#">Include only this</a></p>
 <a href="#">Or any other link as long as it's not in DIV</a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...