カスタム クラスを使用children()して jQuery での要素の選択がどのように機能するかについて混乱していますか?:first
たとえば、この jsFiddleでは、コードul > li {hello from nest}はクラスを取得しませんが.emphasis、first-childトップ レベルのulが取得します。インナーliもクラスを取得することを期待していました。
私の jQuery コードのコメント アウトされた行は、期待どおりに機能します。
カスタム クラスを使用children()して jQuery での要素の選択がどのように機能するかについて混乱していますか?:first
たとえば、この jsFiddleでは、コードul > li {hello from nest}はクラスを取得しませんが.emphasis、first-childトップ レベルのulが取得します。インナーliもクラスを取得することを期待していました。
私の jQuery コードのコメント アウトされた行は、期待どおりに機能します。
:firstセレクターは、選択されたすべてのアイテムの中で最初に一致したアイテムを返します
そう
$('ul').children('li:first').addClass('emphasis');
ulであるすべての子を選択しli、最初の子を取得します。
一方
$('ul > li:first-child').addClass('emphasis');
liの直接の子であるすべてのをul取得し、一致したセットの最初のすべての子を取得します。
jQuery は DOM ツリーをスローしul、このタグの最初の -Tagを見つけました。これfirst-childは、li作成した CSS を取得します。
したがって、それはそれらすべての最初のものを意味します。
jQuery を使用すると、最初の子だけでなく、ul > li:first-childすべての最初の子であるすべての li が取得されますul。