查找具有某个类向上的最近div的Child元素

时间:2014-01-16 11:33:59

标签: javascript jquery html css

我的元素如下:

<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”。

4 个答案:

答案 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");
}