English 中文(简体)
使用jQuery对这两个列表进行分类。
原标题:
  • 时间:2009-02-18 13:49:01
  •  标签:

我正在使用jQuery。现在我需要对这两个列表进行分类。如果任何一个列表的Id以outer开头,我需要弹出“Outer”作为警告。如果任何一个列表的Id以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");
 });

我应该做出什么改变才能正确执行?

最佳回答
$("li").each(function()
{ 
    if($(this).is("[id^= start ]")) alert("START");
    else if($(this).is("[id^= sub ]")) alert("SUB");
});
问题回答

如果您只想区分一级和二级列表项,您也可以简单地使用$("li li")表示二级,而使用$("li:not(li li)")之类的表达式表示一级(未经测试)。

$("li").each(function(){ 
    $( "li[ @id ^=  start  ]" )

each循环中,你必须使用this关键字。所以,每个LI都是this。针对你要做的事情,如果我是你,我会这样做:

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

不过,我想你最好重新考虑一下你的理由。因为我不认为你需要所有这些ID。对于选择第一层LI,你可以使用这个:

$( ul > li )

接着下一个级别,您可以使用

$( ul > ul > li )

等等。





相关问题
热门标签