2012-01-29 98 views
10

我想獲取表格單元格的值。用Jquery獲取多個元素的值

例如

<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> 

我想AAAAA,BBBBB,CCCCC,EEEEE,DDDDD並ASIGN我陣列

我相信我可以用下面

我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) - 意味着第一排..如果你想爲所有行做還是讓我知道你是否需要提供幫助的相應修改。

+0

是的,我確實需要一個關聯數組,你的答案對我來說是完美的。我不明白你的代碼中'(index)'的用途。你能解釋一下嗎?謝謝。 – FlyingCat 2012-01-29 22:51:41

+0

你不需要那裏的函數(索引)。 – 2012-01-29 22:56:35

+0

地圖更簡潔 – pstanton 2017-12-15 21:12:30

7

是的,你可以:)。

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

請記住,如果您的鍵不是數字,請記住使用對象而不是數組。

+0

謝謝,SKS速度更快,所以我給了我答案。 +1。 – FlyingCat 2012-01-29 22:52:19

29

如果您確實需要陣列,請使用.map().toArray()

var tableVal = $('#projects td').map(function(i,v) { 
    return $(this).text(); 
}).toArray(); 

否則,如果你實際上要使用非數字指數,你想要一個對象,使用其他答案中的技巧。

+0

+1 - 不錯的答案:)但是,OP想要的東西像tableVal ['a'] ..是不是地圖返回給你嗎?糾正我,如果我錯了。 – 2012-01-29 22:40:30

+0

OP想要一個關聯數組..在你的情況下,我認爲tableVal ['a']將是未定義的。 – 2012-01-29 22:45:09

+0

@SKS:是的,您的答案將是實現這一目標的方式。 +1在那裏。 :) – 2012-01-29 23:06:25

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'。 Map將數組或對象中的所有項目轉換爲新的項目數組。 OP想要一個關聯數組。 – 2012-01-29 22:47:02