2013-05-24 19 views
5

私は実際にテキストフィールドのテーブルであるフォームを持っています。 HTMLは次のようになります。テキストフィールドから値を取得するjavascript

<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); 
      } 
     } 

ヒントを教えてください。おかげ

+0

をチェック

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

テーブル全体? –

+0

こんにちは、線形演算を行う必要があるので(列単位で)。ありがとう – user2135738

答えて

12

あなたは、細胞からの入力を選択する必要があります。

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

あなたが入力周りの兄弟(でも空白)を持っている可能性があれば、あなたがターゲットに.childrenコレクションを使用することができます正しい要素。

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

+0

すばらしい返答をありがとう! – user2135738

0

あなたはにあなたのループを変更することができます。これは、すべてのtdの要素を取得し、それらをループして、フォーム要素を反復処理し、忘れてはいけないのはなぜfirstChild

関連する問題