5

我有一个表单,它实际上是一个文本字段表。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>

我想迭代所有字段并在按下按钮时获取值,但我在控制台日志中返回未定义。我不想为每个字段使用 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);
            }
        }

有小费吗?谢谢

4

2 回答 2

12

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

// ------------------------------------v
console.log(table.rows[i].cells[0].firstChild.value);

如果您可以在输入周围有兄弟姐妹(甚至是空格),那么您可以使用该.children集合来定位正确的元素。

// ------------------------------------v
console.log(table.rows[i].cells[0].children[0].value);

于 2013-05-24T17:13:52.483 回答
0

您可以将循环更改为:

    var table=document.getElementsByTagName("td");
    for(var i=1; i<table.length;i++){
        console.log(table[i].firstChild.value);
    }

这将获取所有td元素,循环它们并检查firstChild

于 2013-05-24T17:15:12.770 回答