Javascript获取表行内不同单元格类型的值

时间:2013-03-06 17:22:03

标签: javascript dom

晚上好,我写了一个脚本来获取所点击的任何行的值,但我的问题是任何行包含不同类型的控件,它可能是文本字段<input type="text" id="speed" />,它可能是一个下拉列表

    <select name="engineType">
       <option value="1">Manual</option>
       <option value="2">Automatic</option>
       <option value="3">Both</option>
    </select>

在第一种情况下,我将获得innerHtml,在第二种情况下,我将获得值(所选项的值),以便如何在决定获取值或innerHtml之前检查每个单元格的类型,这是脚本:

function findRowNumber() {
    var rowIdx;
    var rowData = new Array();
    var table = document.getElementById('product_table');
    var rows = table.getElementsByTagName('tr');
    var selectedRow;
    for (var i = 0; i < rows.length; i++) {
        rows[i].onclick = function() {
            rowIdx = this.rowIndex;
            selectedRow = rows[rowIdx];
            for (var j = 1; j <11; j++) {
                var rowCell = selectedRow.cells[j].innerHTML;
                rowData.push(rowCellValue);
                alert(rowCellValue);

            }

        }

    }
}

1 个答案:

答案 0 :(得分:1)

我认为这可能是你正在寻找的,但正如系统所说,也许.innerHTML不是最好的做事方式。

for (var j = 1; j <11; j++) {
    var rowCell = selectedRow.cells[j];
    var inputElements;
    if((inputElements = rowCell.getElementByTagName("select")).length > 0)
    {
        // Do stuff for select
    }
    else if((inputElements = rowCell.getElementByTagName("input")).length > 0)
    {
        // Do stuff for input
    }

    rowData.push(rowCellValue);
    alert(rowCellValue);
}