13


1

再帰メニューで最上位のliのみを選択する方法は?

第1レベルのliのみを選択するにはどうすればよいですか? 「ul li」を実行すると、子も選択されます。 CSSを使用して最上位レベルのみを選択し、子を選択する方法はありますか? そうでない場合、jQueryを使用しても問題ありませんが、その場合もjQueryをどのように選択しますか?

        Administration

            Users
            Forms



    Analytics
    Options
    System

11 Answer


14


最初のulの上にある要素またはクラスが必要な場合、 `{parent-selector}> ul> li`を指定します。


7


$( "ul:first> li")。


4


ulにクラスまたはIDがある場合、次のようなことができます。

$('#myList > li')


2


可能であれば、外側のulにクラス名を追加し、 `$( 'ul.myClassName> li')`で選択することで簡単に修正できます。

別のオプション: `$( 'ul> li:has(ul)')`これは、最後のネストレベル以外のすべてを提供します。


2


あなたが使用することができます:

$('ul li:not(ul li ul li)')

これはトップレベルのみを選択しますが、最初のulでも何らかのIDまたはクラスセレクターを使用する必要があります。そうしないと、ページコンテンツなどに干渉する可能性があります。


1


parent/childのjQueryセレクター構文は次のとおりです。

$('ul > li')

_ 子コンビネーター(E> F)は、第1レベルの子孫のみを選択するという点で、子孫コンビネーター(E F)のより具体的な形式と考えることができます。 _

あなたが持っている構造では、 `ul`親要素も指定する必要があるかもしれません。


1


$(".analytics:parent > li")

この特定のケースで動作しますが、トップレベルにクラスまたはIDを与える方が良いでしょう。

何かのようなもの:

$("#top-level-ul > li")

あなたの `li`sの1つの親を選択するよりも、従う方が簡単だ


1


「$( 'ul li')。not( 'ul ul li')」はどうですか?+さらに必要であれば、「ul ol li」と「ol ul li」を除外するためのメモを追加することもできます


0


あるクラスがある場合、最初のクラスにクラスを追加します

  // Add a class to the first UL element
  $(".wrapper > ul").addClass("first-level");

  // Target the first classes first li child
  $(".wrapper ul.first-level > li:first-child");

これには、ie8以前でいくつかの問題があります。


0


一般にパフォーマンスが向上するJQueryトラバーサルの使用:

それがページの最初のULである場合:

$("ul").first().children();

親要素にIDがある場合:

$("#TagID").find("ul").first().children();

ULにはクラスがあります:

$("ul.myClass").children();

ULにIDがある場合:

$("#MyID").children();

特定のクラスを持つ最初のLIの例を考えると:

$("li.administration").parent().children();