从文本字段表javascript获取值

use*_*738 5 html javascript forms

我有一个表格,实际上是一个文本字段表.html看起来像这样:

<form>
  <table id="table">
            <tr>
              <th>Player</th>
              <th>Number</th>
              <th>Con.per.day</th>
              <th>P.100.kg</th>
              <th>P.day</th>
              <th>I.month</th>
            </tr>

            <tr>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td>Result</td>
             </tr>


            <tr>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td>Result</td>
            </tr>


            <tr>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td><input type="text" /></td>
              <td>Result</td>
            </tr>

        </table>
        <input type="button" name="rank" value="Rank" onClick="rankPlayers(this.form)"/>
    </form>
Run Code Online (Sandbox Code Playgroud)

我想遍历所有领域,并在按下按钮获取值,但我得到了一个未定义的控制台日志返回.我不想为每个字段使用ID,因为我想做一些列操作(添加,乘法).我的第一列的脚本如下所示:

            function rankPlayers(){
            var table=document.getElementById("table");
            for(var i=1; i<table.rows.length;i++){

                    console.log(table.rows[i].cells[0].value);
            }
        }
Run Code Online (Sandbox Code Playgroud)

有小费吗?谢谢

小智 12

您需要从单元格中选择输入:

// ------------------------------------v
console.log(table.rows[i].cells[0].firstChild.value);
Run Code Online (Sandbox Code Playgroud)

如果你能有兄弟姐妹(甚至是空白)周围的输入,那么你可以使用.children收集来定位正确的元素.

// ------------------------------------v
console.log(table.rows[i].cells[0].children[0].value);
Run Code Online (Sandbox Code Playgroud)