2014-12-19 47 views
1

我試圖在html表格中動態地檢索下拉列表的值。這是我的HTML如何從html表格中的下拉列表中獲取值cel

<tr> 
<td>ITMF-502</td> 
<td>PUMA</td> 
<td>1</td> 
<td>0</td> 
<td>HALF FRAME/ METAL/ NB/ LOW PRICE</td><td>KOTTAWA</td> 
<td> 
    <select name="loc" id="location0" class="form-control"> 
    <option value="BR000002">KOTTAWA</option> 
    <option value="BR000007">NEGOMBO</option> 
    </select> 
</td> 
</tr> 

這是我的Java腳本

var table = document.getElementById('Items'); 
var tableRowCount = $("#Items > tbody > tr").length; 
for (var i = 1; i <= tableRowCount; i++) { 
    var obj = { 
     itemCode: table.rows.item(i).cells[0].innerText, 
     currentLocation: table.rows.item(i).cells[5].innerText, 
     newLocation: table.rows.item(i).cells[6].find("select").val() 
    }; 
    items.push(obj); 
} 

不過,這並不happen.Anybody能告訴我怎樣才能訪問該值。我需要訪問價值,而不是文字。

+1

哪來的#Items在HTML ????? – 2014-12-19 10:02:48

+1

您不能在DOM對象上調用jQuery方法。查看你的JavaScript錯誤控制檯。它會告訴你你哪裏錯了。 – Quentin 2014-12-19 10:03:00

+0

那麼你應該循環選擇框數據。 – 2014-12-19 10:13:13

回答

2

嘗試下面的代碼

HTML

<tr> 
<td>ITMF-502</td> 
<td>PUMA</td> 
<td>1</td> 
<td>0</td> 
<td>HALF FRAME/ METAL/ NB/ LOW PRICE</td><td>KOTTAWA</td> 
<td> 
    <select name="loc" id="location0" class="form-control"> 
    <option value="BR000002">KOTTAWA</option> 
    <option value="BR000007">NEGOMBO</option> 
    </select> 
</td> 
</tr> 

的JavaScript:

var tableRowCount = document.getElementById('location0').length;; 
for (var i = 0; i < tableRowCount; i++) { 
    alert(document.getElementById('location0')[i].value); 
} 
+0

我需要得到該項目的值。這將顯示文字 – Saranga 2014-12-19 10:35:29

+0

看到更新的答案; – 2014-12-19 10:49:37

+0

我怎麼能把一個動態值作爲'location0' – Saranga 2014-12-19 11:24:59

0

我覺得基本的問題是,你的忽略第一行(索引爲0)。你也加入到項目數組不存在...

這是改善jQuery的版本:

var items = [], 
    table = $(document.getElementById('Items')), 
    tableRows = table.find('tr'), 
    obj, 
    tableRow; 

for (var i = 0; i < tableRows.length; i++) { 
    tableRow = tableRows.eq(i); 

    obj = { 
     itemCode: tableRow.find('td').first().text(), 
     currentLocation: tableRow.find('td').eq(5).text(), 
     newLocation: tableRow.find("select").val() 
    }; 
    items.push(obj); 
} 

console.log(items); 
相關問題