从文本字段表javascript获取值

时间:2013-05-24 17:11:18

标签: javascript html 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>

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

任何提示?感谢

2 个答案:

答案 0 :(得分:12)

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

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

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

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

答案 1 :(得分:0)

您可以将循环更改为:

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

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