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(); });