2014-01-16 38 views
2

我有內容如下:查找最接近的div的子元素具有一定的向上類

<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的(),我需要得到div的數據ID以「something-內」。我已經使用這個代碼試過,

$(this).parent(".parent").find(".something-inner").data("id"); 

不過,這並不選擇「.something-內」的div和獲取數據‘XYZ’。

+0

這是什麼?以及它是否在'doSomething()'方法中完成? –

+0

**免責聲明:我是作者**在這種情況下,您可能會發現這很有用:http://techfoobar.com/jquery-next-in-dom - 在這種情況下,可以像使用$(this)一樣使用它。 prevInDOM('。something-inner');' – techfoobar

回答

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

+0

謝謝。得到它的工作! – raghav

-1

基本上.parent()會選擇元素的直接父項,您應該使用.closest()來實現期望的結果。

嘗試,

HTML:

<a onclick="doSomething(e);"></a> 

JS:

$(e).closest(".parent").find(".something-inner").data("id"); 
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> 
-1

嘗試這樣的事情

HTML

<a onclick="doSomething(this);"></a> 

javascript

function doSomething(obj){ 
    $(obj).parent(".parent").find(".something-inner").data("id"); 
} 
相關問題