2012-10-11 68 views
0

我想遍歷表中的每一行中的每個單元格id =「myTable」,並獲得單元格的子div的id。迭代通過HTML表格行與jQuery得到div ID裏面​​單元

到目前爲止,我有這樣的:

$("td.theCell").each(function() { 
    var id = $(this).attr('id'); //this would give me the td id but I want its child div's id 
}); 

我的HTML是這樣的:

<table id='myTable'> 
    <tr>foo</tr> 
    <tr>bar</tr> 
    <td>foo</td> 
    <td class='theCell'> 
     <div id='myDiv'>foo</div> 
    </td> 
    <tr>foo</tr> 
    <tr>bar</tr> 
</table> 

是否有人知道一個好辦法做到這一點?提前致謝。

+0

'$(」 td.theCell div「)。each(function(){var id = $(this).attr('id'); //這會給我td id,但我想要它的子div的id});' – aserwin

回答

2

試試這個

$("td.theCell").each(function() { 
    var id = $(this).find('div').attr('id'); 
}); 

你需要得到標識的div,而不是正確的td.thecell元素。 所以你需要使用.find()來選擇它裏面的潛水。

+0

如果不是我有?它是否可以使用$(「td.theCell foo」)。(函數(){var _id = $(this).find('div')。attr('id'); }); –

+0

然後你的選擇器應該是$(「td.theCell.foo」)..剩下的將是相同的 –

1

使用find獲得後代的div:

$("td.theCell").each(function() { 
    var id = $(this).find('div').attr('id'); 
}); 
2

將所有的div id保存在一個數組中。使用.eachjsfiddle

var dividlist = []; 
$("td.theCell div").each(function() { 
    dividlist.push(this.id); 
}); 
2

您也可以選擇孩子的div的情況下直接使用find:

$("td.theCell div").each(function() {  
     var id = this.id 
});​ 
0

您可以通過一個小的變化在選擇做

$("#myTable tr > td.theCell > div").each(function() {//you can remove the '>' if you don't just want the direct children only 
    var k = $(this).attr('id'); 
    console.log(k); 
});​