2012-08-03 35 views
0

我有一個div結構,我通過jQuery函數生成了幾乎沒有控制權的那一代。該結構有19個第一代兒童,一個第二代兒童和三個第三代兒童。我對第四代孩子不感興趣。下面是代碼:如何獲得第三個生成的div在一個複雜的結構使用jQuery或只是JavaScript的ID?

<div id="columntableordersGrid"> 
<div></div> 
<div></div> 
.... 
<div></div> 
<div id="30bcef39-6ab1-69f5-81af-bbb9e870bfd4"> 
    <div> 
     <div id="pdfs"><img src="/kabinet/images/32x32/pdf.png"></div> 
     <div class="container"> 
      <div class="filtericon"> 
       <div class="filterbutton"></div> 
      </div> 
      <div class="sortasc"> 
       <div class="sortascbutton"></div> 
      </div> 
      <div class="sortdesc" > 
       <div class="sortdescbutton"></div> 
      </div> 
     </div> 
     <div id="bb29c057-acd8-f1eb-aa13-69d8498ae47e"> 
      <div class="column-menubutton"></div> 
     </div> 
    </div> 
</div> 
</div> 

我需要得到這個結構(bb29c057-acd8-f1eb-aa13-69d8498ae47e)的第三代子女中的一個的ID。腳本每次運行時都會生成新的ID。

我可以用得到的第一代孩子的IDS:

var all = $("#columntableordersGrid > div").map(function() { 
     return this.id; 
    }).get(); 

我感興趣的孩子17,因此,所有的[16]給了我這個孩子的ID,它是:

30bcef39-6ab1-69f5-81af-bbb9e870bfd4在上面的代碼示例中。

第二代div不幸沒有類或id,正如我所說的,我無法控制它的一代。這個div的第三個孩子是我需要的id。

幫助將不勝感激。

回答

1

如果ID您需要始終是類「.column-menubutton」比下面的元素的父級應該使用您現有的代碼。

var parentDivId = all[16]; 
var menuParentDivId = $('#' + parentDivId + " .column-menubutton").parent().attr('id'); 

DEMO

+0

謝謝,這是做的工作! – jmarais 2012-08-03 10:58:09

+0

@jmarais:不客氣,很高興它的作品。 – Nope 2012-08-03 12:03:26

0

你可以使用這樣一個簡單的選擇器來抓住第17個div(索引從0開始,所以16將抓住第17個div),然後獲取在該div內找到的第一個div的ID。

$('#columntableordersGrid div:eq(16) div:first').attr('id'); 

如果你有興趣在div總是最後一個div(因爲它似乎是從上面的例子),你可以稍微做簡化它:

$('#columntableordersGrid div:last div:first').attr('id'); 
相關問題