В чем разница между пространством jQuery и селекторами >?
-
10-07-2019 - |
Решение
Для:
<ul>
<li>Item 1</li>
<li>Item 2
<ul>
<li>Item 2.1</li>
<li>Item 2.2</li>
</ul>
</li>
<li>Item 3</li>
</ul>
Например
$("ul > li").addClass("blah");
добавляет класс «бла» к 1, 2 и 3, тогда как:
$("ul li").addClass("blah");
добавьте класс «бла» к каждому элементу списка.
Я не уверен, что вы имеете в виду под < и ?операторы.
Другие советы
В CSS >
означает " прямой дочерний элемент " ;: выбираются только узлы, которые являются непосредственными дочерними элементами.
Хотя пробел означает «любой потомок»: могут быть выбраны прямые дети и дети этих детей.
Держу пари, что jQuery использует то же соглашение.
Как уже упоминалось, пробел выберет любого потомка, тогда как >
выберет только непосредственных потомков. Если вы хотите выбрать только внуков или правнуков, то вы можете использовать это:
#foo > * > * > .bar
(все элементы с классом «bar», которые являются правнуками элемента с идентификатором «foo»)
посмотрите на это ..
$(".testit > a") //match the first <a> tag below
$(".testit a") // matches all <a> tag below
<p class="testit">
<a href="#">All the rules will match this</a>
<span>
<a href="#">second rule can only select this</a>
</span>
</p>