querySelector для пропуска элементов - PullRequest
0 голосов
/ 18 января 2019

У меня есть вопрос по запросу querySelector. Есть ли способ поиска всех элементов р в HTML-файл, но пропустить те элементы р, которые находятся в конкретном div?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <div>
     <p>hit</p>
     <p>hit</p>
     <p>hit</p>
     <div>
         <p>hit</p>
         <p>hit</p>
         <p>hit</p>
         <p>hit</p>

     </div>
 </div>
<div class="donthit">
    <p>dont</p>
    <p>find</p>
    <p>us</p>
</div>
</body>
</html>

вот мой пример HTML. Есть ли способ получить все элементы р, но не те, которые в div class = "donthit"?

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Вы можете сначала получить все div без конкретного, а затем найти элемент p внутри:

$('div:not(.donthit)').children('p').addClass('red');
.red {
  border:1px solid red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <p>hit</p>
  <p>hit</p>
  <p>hit</p>
  <div>
    <p>hit</p>
    <p>hit</p>
    <p>hit</p>
    <p>hit</p>

  </div>
</div>
<div class="donthit">
  <p>dont</p>
  <p>find</p>
  <p>us</p>
</div>
0 голосов
/ 18 января 2019

Вы можете использовать метод .not () или: not () селектор

Код на основе вашего примера:

$("div:not(.donthit)").children("p")   // not selector 
$("div").not(".donthit").children("p") // not method
...