使用Jquery获取多个元素的价值

Fly*_*Cat 12 arrays 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>
Run Code Online (Sandbox Code Playgroud)

我想得到aaaaa,bbbbb,ccccc,eeeee,ddddd并将它们放到我的阵列中

我相信我可以使用下面的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();   

    })
 });
Run Code Online (Sandbox Code Playgroud)

但是,如果我有20个标签,我认为它不是很易于维护并且需要大量代码.我想知道我是否可以使用.each或以更好的方式存档.谢谢您的帮助.

小智 32

如果你需要的是一个数组,使用.map().toArray().

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

否则,如果您实际上要使用非数字索引,则需要一个Object,使用其他答案中的技术.


Sel*_*gam 12

你可以做类似下面的事情,

var tableVal= [];

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

注意:: eq(0) - 表示第1行.如果您想对所有行进行相应修改,或者如果您需要帮助,请告诉我.


cli*_*ime 7

是的你可以 :).

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

如果您的密钥不是数字,请记住使用对象而不是数组.


Ale*_*rge 5

首先,给你tr一个id:

<tr id="rowToGetDataFrom">
Run Code Online (Sandbox Code Playgroud)

然后你就可以得到你想要的数组:

var tableVal = $('#rowToGetDataFrom td').map(function () { return $(this).text(); });
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/alecgorge/3ApnB/