2010-03-09 57 views
0

我有一個即時通訊使用此代碼動畫嵌套oredered列表中刪除嵌套列表...不能在一個jQuery變量

   var $li = $("ol#update li"); 
       function animate_li(){ 
        $li.filter(':first') 
         .animate({ 
         height: 'show', 
         opacity: 'show' 
         }, 500, function(){ 
         animate_li(); 
         }); 
        $li = $li.not(':first'); 
       } 
       animate_li(); 

現在我想顯示或動畫的嵌套列表(OL多個),或在醇的立小號

在示例看一看here

我的醇的結構是

<ol> 
<li class="bar248"> 
     <div class="nli"> 
     <div class="pic"> 
      <img src="dir/anonymous-thumb.png"alt="image" /> 
     </div> 
     <div align="left" class="text"> 
     <span> 
       <span class="delete_button"><a href="#" id="test" class="delete_update">R</a></span> 

       test shouted <span class="timestamp"> 2010/02/24 18:34:26 </span> <br /> 
     this 
     </span> 
     </div> 

     <div class="clear"></div> 
     </div> 
     <div class="padd"> 

     </div> 
     <ol class="comment"> 
      <li>      
        <div>Testing </div> 
      </li> 
      <li> 
        <div>Another Test </div> 
      </li> 

     </ol> 

    </li> 

    </ol> 

我爲能夠隱藏使用此代碼嵌套醇...

 $("ol#update li ol").hide(); 

但還是時間以動畫他們雖然它們隱藏消耗

我不是能刪除嵌套李s,使用此代碼

var $li = $("ol#update li").not("ol#update li ol"); 
$li = $li.not("ol#update li ol"); 

看看這個here

任何幫助

感謝
Pradyut

回答

1

您是否嘗試過設置你的最初的名單是這樣的:

var $li = $("ol#update > li"); 

這將只得到<li>元素是<ol id="update">列表的直接孩子。

如果你已經有$li設置沒有「>」,那麼你可以使用「過濾器」中刪除從列表中選擇「嵌套」 <li>元素:

var $li = $('ol#update li'); // gets all <li> elements, even the nested ones 

// ... 

var $notNested = $li.filter('ol#update > li'); 
// or, if you prefer, 
var $notNested = $li.filter(':not(ol#update li ol li)'); 
+0

以及另外一個問題.... 我可以得到使用此第一個元素... $ li = $(「ol#update li:eq(0)」);如何得到第一個n元素(只有李)使用一些代碼... 謝謝 – 2010-03-13 20:53:59

+0

我可以得到使用此第n個元素... $(「ol#update li:lt(n)」); 如何獲得5和10之間的元素。 請回復... – 2010-03-13 21:58:50

+0

我使用$ li = $ li.filter(':lt(5)')。filter(':gt(2)'); 獲得5至2之間的lis; 還有其他更好的方法嗎? – 2010-03-13 22:36:28