Qual è la differenza tra i selettori space e >? E possibilmente correlato, come posso cercare qualcosa che sia il figlio diretto di qualcos'altro, e non più in basso nella linea discendente?Qual è la differenza tra lo spazio di jQuery e i selettori>?
risposta
Per:
<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>
Per esempio
$("ul > li").addClass("blah");
aggiunge classe "bla" per 1 2 e 3 considerando quanto segue:
$("ul li").addClass("blah");
aggiuntivo di classe "bla" per ogni elemento della lista .
Non sono sicuro di cosa ti riferisci a < e? operatori.
Nei CSS, >
significa "figlio diretto di": sono selezionati solo i nodi figli diretti.
Mentre uno spazio significa "qualsiasi discendente di": i bambini e i bambini diretti di quei bambini potrebbero essere selezionati.
Vorrei scommettere che jQuery usa la stessa convenzione.
Come già accennato, uno spazio selezionerà qualsiasi discendente, mentre >
selezionerà solo i bambini immediati. Se si desidera selezionare solo i nipoti o pronipoti, allora si potrebbe utilizzare questo:
#foo > * > * > .bar
(tutti gli elementi con classe "bar" che sono pronipoti dell'elemento con id "foo")
guarda questo ..
$(".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>
Gli ul li stabiliscono tutti in "blah"? perché hai una sottocategoria che ha anche figli in un ul. –
> significa bambini immediati, non nipoti o altro. –
ul> li corrisponde anche agli elenchi nidificati –