jQuery的:如何得到一个父母的特定孩子?
为了给出一个简单的例子,我在页面上重复了下面的块(它是dynamic生成的):
<div class="box"> <div class="something1"></div> <div class="something2"> <a class="mylink">My link</a> </div> </div> 点击后,我可以通过以下链接进入链接的父级:
 $(".mylink").click(function() { $(this).parents(".box").fadeOut("fast"); }); 
 但是…我需要去那个特殊的父母的<div class="something1"> 。 
基本上,有人可以告诉我如何参考一个更高级别的兄弟姐妹,而不能直接引用它? 我们称之为大哥。 直接引用大哥的类名会导致页面上该元素的每个实例都淡出 – 这不是所期望的效果。
我试过了:
 parents(".box .something1") ... no luck. parents(".box > .something1") ... no luck. siblings() ... no luck. 
任何人? 谢谢。
 调用.parents(".box .something1")将返回与select器.box .something匹配的所有父元素。 换句话说,它会返回.something1父元素,并且.something1内部。 
你需要得到最亲密的父母的孩子,像这样:
 $(this).closest('.box').children('.something1') 
 这段代码调用.closest来获取匹配select器的最内层的父项,然后调用该父元素的.closest来find你正在寻找的叔叔。 
 $(this).parent() 
树遍历很有趣
 $(this).parent().siblings(".something1"); $(this).parent().prev(); // if you always want the parent's previous sibling $(this).parents(".box").children(".something1"); 
更多的方法,你可能会发现这些文档有帮助。
 这将find第一个父类与box类然后find第一个子类与正则expression式匹配的something并获得ID。 
 $(".mylink").closest(".box").find('[class*="something"]').first().attr("id") 
 如果我正确地理解你的问题, $(this).parents('.box').children('.something1')这是你在找什么? 
 你可以在.each()和括号内使用.each() 。 
 //Grab Each Instance of Box. $(".box").each(function(i){ //For Each Instance, grab a child called .something1. Fade It Out. $(this).children(".something1").fadeOut(); });