0

こんばんは、クリックされた行の値を取得するスクリプトを作成しますが、問題は、行にさまざまな種類のコントロールが含まれていることです。テキストフィールド<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を取得し、2番目のケースでは値(選択したアイテムの値)を取得するので、値または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);

            }

        }

    }
}
4

1 に答える 1

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);
}
于 2013-03-06T17:39:40.110 に答える