मैं .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
Lord A. 23 मार्च 2020, 06:43

1 उत्तर

सबसे बढ़िया उत्तर

प्रत्यक्ष वंशजों को लक्षित करने के लिए > का प्रयोग करें।

.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>
2
thingEvery 23 मार्च 2020, 06:56