Was ist der Unterschied zwischen den Selektoren space und >? Und möglicherweise verwandt, wie kann ich nach etwas suchen, das das direkte Kind von etwas anderem ist, und die Nachkommenlinie nicht senken?Was ist der Unterschied zwischen jQuery Space und> Selektoren?
Antwort
Für:
<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>
Zum Beispiel
$("ul > li").addClass("blah");
fügt class "bla" auf 1, 2 und 3, während:
$("ul li").addClass("blah");
Klasse hinzufügen "bla" auf jedes Listenelement .
Ich bin mir nicht sicher, was Sie mit < und? Betreiber.
In CSS, >
bedeutet "direkte Kind von": nur Knoten, die direkte Kinder sind ausgewählt sind.
Während ein Leerzeichen bedeutet "irgendein Abkömmling von": direkte Kinder und Kinder dieser Kinder könnten ausgewählt werden.
Ich würde wetten jQuery verwendet die gleiche Konvention.
Wie bereits erwähnt, wählt ein Leerzeichen einen beliebigen Nachfolger aus, während >
nur unmittelbar untergeordnete Elemente auswählt. Wenn Sie nur Enkel oder Urenkel auswählen möchten, dann können Sie diese verwenden:
#foo > * > * > .bar
(alle Elemente mit Klasse „bar“, die Urenkel des Elements mit der ID „foo“) sind
sieh dir das an.
$(".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>
Setzt ul> li alle von ihnen auf "blah"? weil du eine unterliste hast, die auch li kinder in einer ul hat. –
> bedeutet sofortige Kinder, keine Enkel oder mehr. –
ul> li stimmt mit den verschachtelten Listen überein –