2011-02-01 66 views
0

我有一個表,我循環直通,並希望從每行中的列中拉出值。我怎麼做?如何在循環顯示錶格行時獲取值?

$('#buildingList tr').each(function() { 
     //check each column in the row and get value from column 3 which is a drop down 
    });  

<table id="buildingList"> 
<tr> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"> 
<select id="ddl"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 
</td> 
</tr> 
<tr> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"> 
<select id="ddl"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 
</td> 
</tr> 
<tr> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"> 
<select id="ddl"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 
</td> 
</tr> 
</table> 
+1

所有選擇元素具有相同的ID(DDL)。這是無效的;) – 2011-02-01 18:23:25

+0

有一點需要注意的是,你選擇的都具有相同的id屬性。 id屬性應該對每個元素都是唯一的。也許你的意圖是調用每個類=「ddl」? – 2011-02-01 18:25:09

回答

1

使用:selected選項,並在您的each循環與元素的值工作:

$('#buildingList td select option:selected').each(function(i, el) { 
    // Do something with $(el).val() or el.value 
}); 
+0

所以這將檢查所有的列? – MrM 2011-02-01 18:22:56

0
$('#buildingList tr td:nth-child(3) select option:selected').each(function() { 
    var myValue = $(this).text(); 
}); 

編輯的綜合版本

0

取決於你想要的價值觀該怎麼做。如果你想存儲他們在一個陣列中,你可以做到這一點:

var values = []; 
$('#buildingList tr select').each(function (index, elem) { 
    values.push(elem.value); 
}); 

也在側面說明。您有多個<select>元素具有相同的ID。一個id屬性應該是唯一的。

0

您可以直接將下拉菜單中使用的每一行的第3列:

$('#buildingList tr td:eq(2) select').each(function() {  
    var dropDown = $(this); //this refers to the DOM Select 
});