2012-07-03 156 views
0

我试图选择列表中第二级的所有li元素,为它们添加特殊类。我多次尝试都没有成功。所以我设定的li元素就在喜剧,悲剧和历史之下。在列表中选择元素jQuery

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('li').next().addClass('special'); 
    }); 
</script> 

<style type="text/css"> 
    .special { 
     font-style: italic; 
    } 
</style> 

<body> 
    <div id="container"> 
     <h2>Selected Shakespeare Plays</h2> 
     <ul id="selected-plays" class="clear-after"> 
      <li>Comedies 
       <ul> 
        <li> 
         <a href="/asyoulikeit/">As You Like It</a> 
        </li> 
        <li>All's Well That Ends Well</li> 
        <li>A Midsummer Night's Dream</li> 
        <li>Twelfth Night</li> 
       </ul> 
      </li> 
      <li>Tragedies 
       <ul> 
        <li> 
         <a href="hamlet.pdf">Hamlet</a> 
        </li> 
        <li>Macbeth</li> 
        <li>Romeo and Juliet</li> 
       </ul> 
      </li> 
      <li>Histories 
       <ul> 
        <li>Henry IV (
         <a href="mailto:[email protected]">email</a>) 
         <ul> 
          <li>Part I</li> 
          <li>Part II</li> 
         </ul> 
        </li> 
        <li> 
         <a href="http://www.shakespeare.co.uk/henryv.htm">Henry V</a> 
        </li> 
        <li>Richard II</li> 
       </ul> 
      </li> 
     </ul> 
</body> 

回答

5

试试这个:

<script type="text/javascript"> 
     $(document).ready(function(){ 
      $('#selected-plays > li > ul > li').addClass('special'); 
     }); 

</script> 
+0

但 “第一部分” 和 “第二部分” 的影响。那些是李三级。我相信 –

+0

没有检查完整的HTML通知第1部分第2部分。更新了一个修复后的帖子。 – Chandu

+0

没有..这是行不通的,我把它放在HTML,但无论如何感谢 –

0

$('#selected-plays li').find('li').addClass('special'); 

有很多方法可以找到孩子的集合

+0

我明白,但这意味着你选择了所有的孩子以下,你是选择。你能把目标定位在当前il之下(儿童而不是后代)。无论如何,它不会选择列表 –

+0

上的“第一部分”和“第一部分”,您可以使用'$('#selected-plays> li')。 ('特殊');'如果你只想要直接的孩子 – voigtan