2012-01-29 77 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