我的元素如下:
<div class="parent">
<div class="something">
<div class="something-inner" data-id="xyz">
some contents
</div>
</div>
<div class="next">
<a onclick="doSomething();"></a>
</div>
</div>
在函数doSomething()中,我需要使用“something-inner”获取div的data-id。我试过使用这段代码,
$(this).parent(".parent").find(".something-inner").data("id");
但它没有选择“.something-inner”div并获取数据“xyz”。
答案 0 :(得分:1)
试试这个:
DOM:
<div class="parent">
<div class="something">
<div class="something-inner" data-id="xyz">
some contents
</div>
</div>
<div class="next">
<a onclick="doSomething(this);"></a>
</div>
</div>
Js代码:
function doSomething(obj){
alert($(obj).closest('.parent').find(".something-inner").data("id"););
}
<强> working fiddle 强>
答案 1 :(得分:0)
<div class="parent">
<div class="something">
<div class="something-inner" data-id="xyz">
some contents
</div>
</div>
<div class="next">
<a onclick="doSomething(this);"></a>
</div>
</div>
<script>
function doSomething(obj)
{
console.log($(obj).parent().prev().find(".something-inner").attr("data-id"));
}
</script>
答案 2 :(得分:-1)
基本上.parent()
将选择元素的直接父级,您应该使用.closest()
来达到预期的结果。
尝试,
HTML:
<a onclick="doSomething(e);"></a>
JS:
$(e).closest(".parent").find(".something-inner").data("id");
答案 3 :(得分:-1)
尝试这样的事情
<强> HTML 强>
<a onclick="doSomething(this);"></a>
<强>的javascript 强>
function doSomething(obj){
$(obj).parent(".parent").find(".something-inner").data("id");
}