2012-01-29 21 views
10

テーブルセルの値を取得しようとしています。例えばJqueryで複数の要素の値を取得する

私はAAAAA、BBBBB、CCCCC、EEEEE、DDDDDを取得し、私の配列にそれらをasignたい
<table id='projects'> 

     <tr> 
     <td id='a'>aaaaa</td> 
     <td id='b'>bbbbb</td> 
     <td id='c'>ccccc</td> 
     <td id='d'>eeeee</td> 
     <td id='e'>ddddd</td> 
     </tr> 
</table> 
<a id='test' href='#'>test </a> 

私は

以下の私のjQueryコードで値を取得することができると信じて

$(document).ready(function(){ 
    $('#test').click(function(){ 
    var tableVal=new Array(); 
    tableVal['a']=$('#a').text(); 
    tableVal['b']=$('#b').text(); 
    tableVal['c']=$('#c').text(); 
    tableVal['d']=$('#d').text(); 
    tableVal['e']=$('#e').text(); 

    }) 
}); 

しかし、20個のタグがあれば、それは非常に保守的ではなく、多くのコードをとると思います。 .eachでこれをやることができるのか、これをアーカイブするためのよりよい方法があるのだろうかと思っていました。助けてくれてありがとう。

答えて

11

あなたは、以下のような

var tableVal= []; 

$('#projects tr:eq(0) td').each (function() { 
    tableVal[this.id] = $(this).text(); 
}); 

注何かを行うことができます::eq(0)を - 1行目を意味..あなたはすべての行のために行うか、あなたがそれを助ける必要があるなら、私が知っているようにしたい場合はそれに応じて修正します。

+0

はい私は連想配列が必要です、あなたの答えは私にとって完璧です。私はあなたのコードで '(インデックス)'の目的を理解していない。説明しますか?ありがとう。 – FlyingCat

+0

ここに関数(インデックス)は必要ありません。 –

+0

地図はより簡潔 – pstanton

7

はい、できます:)

var tableVals= {} 
$('#projects td').each(function() { 
    tableVals[$(this).attr('id')] = $(this).text(); 
}); 

キーが数値でない場合は、配列の代わりにobjectを使用してください。

+0

ありがとう、SKSは速く、私は彼に私の答えを与えた。 +1。 – FlyingCat

29

実際に配列が必要な場合は、.map().toArray()に設定します。

実際に非数値インデックスを使用する場合は、他の回答のテクニックを使用してオブジェクトが必要です。

+0

+1 - 素敵な答え:) ..しかし、OPはtableVal ['a']のようなものです。マップはあなたにそれを返しませんか?私が間違っていれば私を修正してください。 –

+0

OPは連想配列を求めています。あなたの場合、tableVal ['a']は定義されていないと思います。 –

+0

@SKS:はい、あなたの答えはそれを行う方法になります。そこに+1。 :) –

2

試してみてください。

var tableVal = []; 
$('#test').click(
    function(){ 
     $('#projects td').each(
      function(){ 
        tableVal.push($(this).text()); 
      }); 
    }); 
5

は、まず与えるあなたtrid

<tr id="rowToGetDataFrom"> 

次に、あなたはこのようにしたい配列を得ることができます。

var tableVal = $('#rowToGetDataFrom td').map(function() { return $(this).text(); }); 

デモ:http://jsfiddle.net/alecgorge/3ApnB/

+0

tableVal ['a'] =未定義。 OPのtableVal ['a'] = 'aaaaa'が必要です。マップは、配列またはオブジェクト内のすべての項目を新しい項目配列に変換します。 OPは連想配列を求めています。 –

関連する問題