它影响所有li .subnav元素,我如何才能访问子元素?
$("#left_content").on('click', '.left_navigation ul li', function () {
$(".left_navigation ul li .sub_nav").slideToggle("slow");
});
答案 0 :(得分:0)
$(".left_navigation ul li > .sub_nav").slideToggle("slow");
答案 1 :(得分:0)
如果您需要li下的sub_navs,请执行以下操作:".left_navigation ul li > .sub_nav"
答案 2 :(得分:0)
最简单,最快的方法是仅引用被点击的内容中的子项。 this
将引用所点击的项目,因此将其作为第二个参数传递给$()
,只会查询嵌套在<li>
$("#left_content").on('click', '.left_navigation ul li', function () {
$('.sub_nav', this).slideToggle("slow");
});
如果人们不熟悉该语法,则调用$(selector, this)
与调用$(this).find(selector)
fwiw相同。
答案 3 :(得分:0)
如果没有看到您的标记,就很难给出准确的答案,但听起来您只需要使用this
来切换相关的.sub_nav
:
$(this).find('.sub_nav').slideToggle('slow');
this
表示触发click
事件的DOM节点,.find('.sub_nav')
使用类sub_nav
答案 4 :(得分:0)
试试这个:
$("#left_content").on('click', '.left_navigation ul li', function () {
$(this).children('.sub_nav').slideToggle("slow");
});
.children()方法与.find()的不同之处在于.children()只沿DOM树向下移动一个级别,而.find()可以遍历多个级别以选择后代元素(孙子等) 。)以及。
答案 5 :(得分:0)
$('.left_navigation ul li').click( function () {
$(this).find(".sub_nav").slideToggle("slow");
});