jQuery最接近的类选择器

Click me
Information
Click me
Information
Click me
Information
Click me
Information

jQuery的

 $('.Level2').click(function(){ $('.Level2').closest('.Level3').fadeToggle(); }); 

我想选择最接近的level3到fadeIn和fadeOut,但是不起作用。 我的语法错了吗? 在线样本: http : //jsfiddle.net/meEUZ/

尝试使用.next()而不是遍历DOM元素祖先的.closest()

工作演示

你也应该使用$(this)而不是$('.Level2')否则它将选择所有.Level2而不是点击的.Level2

你也可以这样做 – $(this).closest('.wrap').find('.Level3').fadeToggle();

干杯!

jQuery的.closest()方法不选择兄弟选择器,而是选择父节点 。 看起来你正在寻找.siblings()方法。

 $('.Level2').click(function(){ $(this).siblings('.Level3').fadeToggle(); }); 

最接近dom树的旅行。 它找不到兄弟姐妹的东西。 您可以在父级上使用查找来实现此目的

 $('.Level2').click(function(){ $(this).parent().find('.Level3').fadeToggle(); }); 

是的,在Jquery中有很多方法可以找到最接近的DOM元素

 $('.Level1').click(function(){ $(this).next('.Level3').fadeToggle(); }); $('.Level2').click(function(){ $(this).closest('.wrap').find('.Level3').fadeToggle(); }); $('.Level4').click(function(){ $(this).parent().find('.Level3').fadeToggle(); }); $('.Level5').click(function(){ $(this).siblings('.Level3').fadeToggle(); }); 
 .level{background:Red;width:200px;height:40px;} .Level3{background:blue;width:300px;height:50px;} 
  
Click me()sing next)
Information
Click me(Using closest)
Information
Click me(Usingh Parent)
Information
Click me(Using Sibiling)
Information

是! closest从您传递给它的选择器开始DOM搜索,并向上移动DOM层次结构,搜索父项/祖先。 请改用siblingsnext 。 像这样:

 $('.Level2').click(function(){ $(this).siblings('.Level3').fadeToggle(); }); 

从以下代码中获得清晰的想法:

   ' . '
' . '

' . '

' . '
'; } ?>