2013-08-27 41 views
2
<div class="cdlButton" style="width:40px; float: left;"> // want this div element 
    <div style=""> 
     <a id="changestatus" class="" onclick="changeWorkflowStatus()" href="#"> 
      <img id="" width="32px" height="32px" title="disable" alt="disable" src="images/disable.png"> 
     </a> 
    </div> 
</div> 

我想用jQuery 眼下的幫助DIV的ID我在做這樣家長使用jQuery

$("#changestatus ").parent().parent().addClass('disablecdlButton'); 

有沒有其他的方式來獲得最高的div元素

回答

2

您可以在這裏做各種各樣的事情

$(".cdlButton").addClass('disablecdlButton'); 
$('#changestatus').closest('div.cdlButton').addClass('disablecdlButton'); 
$($('#changestatus').parents().get(-1)).addClass('disablecdlButton'); 
7
$('#changestatus').closest('div.cdlButton').addClass('disablecdlButton'); 

對於集合中的每個元素,通過測試元素本身並遍歷DOM樹中的祖先來獲取匹配選擇器的第一個元素。

Official Document

+0

感謝您的回覆。 cdlButton類不是必需的。如果班級在場,仍然是更好的選擇 – rahul

1

使用closest()

說明:對於組中的每一個元素,獲得由自身測試的元素和DOM向上遍歷通過它的祖先選擇相匹配的第一個元素樹。

$("#changestatus").closest("div.cdlButton").addClass('disablecdlButton'); 
1

您可以嘗試

$("#changestatus ").parents(".cdlButton").addClass('disablecdlButton'); 
0
$("#changestatus ").parents('div.cdlButton').addClass('disablecdlButton'); 
+1

'.parent()'只能找到一個直接父母,它不會繼續。在他的情況下,它需要上升2級。 – Barmar

+0

對不起,錯誤。現在我編輯它。父母是對的 –

+1

'.closest()'更好,你不覺得嗎?它一找到匹配就會停下來,而不是在層次結構的更上層尋找更多的匹配。 – Barmar

0

DEMO

試試這個,.parents('div').last()將選擇所選元素的最頂部的父div元素,這是changestatus

$("#changestatus ").parents('div').last().addClass('disablecdlButton'); 

希望這會有所幫助,謝謝