2011-05-03 126 views
4

我有這樣的HTML結構:查找兒童名單

<ul class="shopp_categories"> 
<li><a href="#">TEXT</a> 
    <ul class="children"> 
     <li><a href="#">TEXT</a></li> 
    </ul> 
</li> 
<li><a href="#">Text</a></li> 
<li><a href="#">TEXT</a> 
    <ul class="children"> 
     <li><a href="#">TEXT</a></li> 
    </ul> 
</li>  
</ul> 

這是我的js代碼:

jQuery('#sidebar .shopp_categories ul.children').parent().prepend('<span class="sidebar_cats_more"></span>'); 
jQuery('.sidebar_cats_more').click(function(){ 
    var $children_list = jQuery(this).find('ul').children().children(); 
    alert($children_list.html()); 
    $children_list.slideToggle(1000, function() { 
     if ($children_list.is(':visible')) { 

     } 
     if ($children_list.is(':hidden')) { 

     } 
     }); 
    }); 

我需要找到列表項目的孩子列表,其中

span.sidebar_cats_more 

被預先考慮到。如果我找到了這個列表,它應該用slideToggle動畫。 問題是位於此行:

var $children_list = jQuery(this).find('ul').children().children(); 
+0

問題是什麼? – SLaks 2011-05-03 13:43:31

回答

2

<ul>元素不是.sidebar_cats_more的子女;它是它之後的元素的孩子。 (你預先考慮它)。

$(this).parent().find('ul')$(this).next().find('ul')

0

span.sidebar_cats_more沒有孩子,所以它不會找到ul元素。請嘗試

var $children_list = jQuery(this).siblings('ul');