如何获取表内的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);
        })
    })
}

最佳答案

查看您的代码,我相信问题出在touchspinIDcellID上,因为它们都缺少'#'表示您正在寻找具有这些特定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/

10-09 18:36