Tom*_*Tom 91 jquery parent siblings jquery-selectors
举一个简单的例子,我在页面上多次重复了以下块(它是动态生成的):
<div class="box">
<div class="something1"></div>
<div class="something2">
<a class="mylink">My link</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
点击后,我可以通过以下方式访问链接的父级:
$(".mylink").click(function() {
$(this).parents(".box").fadeOut("fast");
});
Run Code Online (Sandbox Code Playgroud)
但是......我需要找到<div class="something1">那个特定的父母.
基本上,有人可以告诉我如何引用更高级别的兄弟而不能直接引用它吗?我们称之为大哥哥.直接引用大哥的类名会导致页面上该元素的每个实例淡出 - 这不是理想的效果.
我试过了:
parents(".box .something1") ... no luck.
parents(".box > .something1") ... no luck.
siblings() ... no luck.
Run Code Online (Sandbox Code Playgroud)
任何人?谢谢.
SLa*_*aks 137
调用.parents(".box .something1")将返回与选择器匹配的所有父元素.box .something.换句话说,它将返回.something1内部和内部的父元素.box.
你需要得到最亲近的父母的孩子,如下所示:
$(this).closest('.box').children('.something1')
Run Code Online (Sandbox Code Playgroud)
此代码调用.closest以使最内层的父匹配选择器,然后调用.children该父元素以查找您正在寻找的叔叔.
Anu*_*rag 17
$(this).parent()
Run Code Online (Sandbox Code Playgroud)
树遍历很有趣
$(this).parent().siblings(".something1");
$(this).parent().prev(); // if you always want the parent's previous sibling
$(this).parents(".box").children(".something1");
Run Code Online (Sandbox Code Playgroud)
还有更多方法,您可能会发现这些文档很有帮助.
use*_*995 13
这将找到第一个带有类的父类,box然后找到第一个带有正则表达式匹配的子类something并获取id.
$(".mylink").closest(".box").find('[class*="something"]').first().attr("id")
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以在括号内使用.each()with.children()和选择器:
//Grab Each Instance of Box.
$(".box").each(function(i){
//For Each Instance, grab a child called .something1. Fade It Out.
$(this).children(".something1").fadeOut();
});
Run Code Online (Sandbox Code Playgroud)