我试图获取表格单元格的值。
例如
<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并将它们指向我的数组
我相信我可以使用下面的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
或更好的方式来存档它。谢谢您的帮助。
答案 0 :(得分:32)
如果您确实需要数组,请将.map()
与.toArray()
一起使用。
var tableVal = $('#projects td').map(function(i,v) {
return $(this).text();
}).toArray();
否则,如果你真的要使用非数字索引,你需要一个Object,使用其他答案中的技巧。
答案 1 :(得分:11)
您可以执行以下操作,
var tableVal= [];
$('#projects tr:eq(0) td').each (function () {
tableVal[this.id] = $(this).text();
});
注意::eq(0) - 表示第1行。如果您想对所有行执行相应修改,或者如果您需要帮助,请告诉我。
答案 2 :(得分:7)
是的,你可以:)。
var tableVals= {}
$('#projects td').each(function() {
tableVals[$(this).attr('id')] = $(this).text();
});
如果您的密钥不是数字,请记住使用object而不是数组。
答案 3 :(得分:5)
首先,给tr
id
:
<tr id="rowToGetDataFrom">
然后你就可以得到你想要的数组:
var tableVal = $('#rowToGetDataFrom td').map(function () { return $(this).text(); });
答案 4 :(得分:2)
尝试:
var tableVal = [];
$('#test').click(
function(){
$('#projects td').each(
function(){
tableVal.push($(this).text());
});
});