簡體   English   中英

在JavaScript中選擇特定的表格單元格

[英]Select specific table cell in JavaScript

我有這樣的HTML:

<table id="laboral">
    <tr>
        <td><input type="text" name="start"/></td>
        <td><input type="text" name="end"/></td>
        <td><textarea name="desc"></textarea></td>
        <td><button type="button" onclick="saveValues(this);createRow('laboral')"> + </button></td>
    </tr>
</table>

我想要的是將值保存在三個單元格中(2個輸入和1個textarea)。

該按鈕創建另一行,就像第一行一樣,具有相同的輸入和名稱。 問題是我不知道如何訪問這一行,我的意思是,擁有該按鈕的行。

我試過this.parentNode.parentNode但沒有用。

您將對按鈕的引用傳遞給saveValues ,因此在saveValues ,第一個參數將引用該按鈕。 我們稱這個論點為btn. btn.parentNode將是包含按鈕的td ,而`btn.parentNode.parentNode將是包含該tdtr 所以:

function saveValues(btn) {
    var tr = btn.parentNode.parentNode;
    // Work with `childNodes` and the `childNodes` of those children to get the values
}

嘗試這個

<table id="laboral">
    <tr>
        <td><input type="text" name="start"/></td>
        <td><input type="text" name="end"/></td>
        <td><textarea name="desc"></textarea></td>
        <td><button type="button" onclick="saveValues(this)"> + </button></td>
    </tr>
</table>

var inputVals = [];

function saveValues(elm) {
    //         button   td         tr        tbody     table
    var table = elm.parentNode.parentNode.parentNode.parentNode;

    //  iterating through the first row cells
    for (var i = 0; i<table.rows[0].cells.length-1; i++) {
        //  the current cell
        var cell = table.rows[0].cells[i];
        //  pushing the input elm's value into the array
        inputVals.push(cell.childNodes[0].value);
        //  retrieving the pushed value
        alert(inputVals[i]);
    }
}

小提琴的例子

您可以修改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM