我有这个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') ) {
}
});
});
我需要从List Item中找到子列表
span.sidebar_cats_more
是前言。如果我找到了这个列表,它将使用slideToggle进行动画处理。 问题出在这一行:
var $children_list = jQuery(this).find('ul').children().children();
答案 0 :(得分:2)
<ul>
元素不是.sidebar_cats_more
的子元素。它是元素之后的孩子。 (你先前加入)。
撰写$(this).parent().find('ul')
或$(this).next().find('ul')
。
答案 1 :(得分:0)
span.sidebar猫更没有孩子所以它不会找到ul元素。尝试
var $children_list = jQuery(this).siblings('ul');