如何获取表内的Bootstrap TouchSpin元素的值?我目前一无所获,因为我不相信它能找到元素。
创建触控并插入表格
var table = document.getElementById("createOrderTable");
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
row.id = 'row' + rowCount;
// TouchSpin element
var cell1 = row.insertCell(1);
var touchSpinID = 'touchspin' + rowCount;
cell1.innerHTML = "<input id='" + touchSpinID +"' type='text' value='1' name='" + touchSpinID +"'>";
cell1.id = 'cell' + touchSpinID;
//Init TouchSpin
$("input[name='" + touchSpinID +"']").TouchSpin({
verticalbuttons: true,
min: 0,
max: 100000000,
});
遍历表并获取Touchspin的值,以下两种方法均无效。
var table = document.getElementById("createOrderTable");
var rowCount = table.rows.length;
var productArray = [];
for(i = 1; i < table.rows.length; i++){
var touchspinID = 'touchspin' + i;
var touchspinValue = 0;
cellID = 'cell' + touchspinID;
$(cellID).find(touchspinID).each(function(){
touchspinValue = this.val();
console.log(touchspinValue);
});
$("#createOrderTable tr").each(function () {
$('td', this).each(function () {
var value = $(this).find(touchspinID).val();
console.log(value);
})
})
}
最佳答案
查看您的代码,我相信问题出在touchspinID
和cellID
上,因为它们都缺少'#'表示您正在寻找具有这些特定id
的元素。
更改以下两行:
var touchspinID = 'touchspin' + i;
cellID = 'cell' + touchspinID;
至:
var touchspinID = '#touchspin' + i;
cellID = '#cell' + touchspinID;
应该解决您的问题。另外,在调用
.each
之后,您无需使用.find
,因为单元格将仅具有一个“ touchspin”元素,并且id
必须始终是唯一的:var touchspinValue = $(cellID).find(touchspinID).val();
console.log(touchspinValue);
如果以上方法不能解决您的问题,请在问题中包含表格html。
关于javascript - 如何在 table 内获得TouchSpin的值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36801617/