Классифицируйте два списка, используя jQuery - PullRequest
0 голосов
/ 18 февраля 2009

Я использую jQuery. Теперь мне нужно классифицировать два списка. Если какой-либо список с идентификатором начинается с внешнего, мне нужно сообщить об этом как «Внешний». Если какой-либо список с идентификатором начинается с sub, мне нужно сообщить об этом как «Sub».

<ul id="nav">
     <li id="outer1"><a href="#url"><b class="">Outer 1</b></a></li>
     <li id="outer2"><a href="#url"><b class="">Outer 2</b></a></li>

     <li id="outer3"><a href="#url"><b class="">Outer 3  </b></a>
          <ul style="display: none;">
             <li id="sub1"><a href="#url"><span id="inner1"> inner1</span></a></li>
             <li id="sub2"><a href="#url"><span id="inner2"> inner2</span></a></li>

         </ul>
     </li>
     <li id="outer4"><a href="#url"><b class="">Outer 3  </b></a></li>
</ul>

Мой код указан ниже. Я сделал следующий код.

$("li").each(function(){
      $( "li[ @id ^= 'start' ]" )
           alert("START");
        $( "li[ @id ^= 'sub' ]" )
           alert("SUB");
 });

Какое изменение я должен сделать, чтобы правильно выполнить?

Ответы [ 3 ]

1 голос
/ 18 февраля 2009

Если вы просто хотите различать элементы списка первого и второго уровня, вы также можете просто использовать $ ("li li") для второго уровня и что-то вроде $ ("li : not (li li) ") для первого уровня (не проверено).

1 голос
/ 18 февраля 2009
$("li").each(function()
{ 
    if($(this).is("[id^='start']")) alert("START");
    else if($(this).is("[id^='sub']")) alert("SUB");
});
0 голосов
/ 18 февраля 2009
$("li").each(function(){ 
    $( "li[ @id ^= 'start' ]" )

В цикле each вы должны использовать ключевое слово this. Итак, каждый LI равен this. За то, что вы пытаетесь сделать, если бы я был вами, я бы сделал это так:

$("li").each(function(){ 
    $(this).is('[id^=start]')
})

Однако, я думаю, вам лучше переосмыслить свое обоснование. Потому что я не думаю, что вам понадобятся все эти ID. Для выбора первого уровня LI вы можете использовать это:

$('ul > li')

Тогда для следующего уровня вы можете использовать

$('ul > ul > li')

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...