2011-02-01 14 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)を持っています。それは無効です;) –

+0

あなたの選択はすべて同じid属性を持つことに注意してください。 id属性は、各要素に対して一意である必要があります。たぶんあなたの意図は、各クラス= "ddl"を呼び出すことです? –

答えて

1

:selectedオプションを使用して、あなたのeachループ内の要素の値で動作:連結バージョン

+0

これはすべての列をチェックするでしょうか? – MrM

+0

+1選択したオプションのループのみです! – fredrik

+0

@ user54197 - はい、すべての列をチェックしています。特定の列だけが必要な場合は、 'td'に':eq'セレクタを使用できます。 See:http://api.jquery.com/eq-selector/ –

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

は、あなたが値で何をしたいかによって異なります。それらを配列に格納したい場合は、

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

また、サイドノートにもできます。同じIDを持つ複数の<select>要素があります。 id属性は一意でなければなりません。

+0

これは全ての列をチェックしますか? – MrM

+0

はすべてのtdを無視し、3番目の列にtd:nth-​​child(3)を追加するだけの場合は、選択タグ –

+0

のためにまっすぐに進みます:$( '#buildingList tr td:nth-​​child(3)関数 () { –

0

のために編集

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

あなたは直接使用して、各行の第三列のドロップダウンを取得することができます。

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