我试图获得表格单元格的值.
例如
<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行.如果您想对所有行进行相应修改,或者如果您需要帮助,请告诉我.
是的你可以 :).
var tableVals= {}
$('#projects td').each(function() {
tableVals[$(this).attr('id')] = $(this).text();
});
Run Code Online (Sandbox Code Playgroud)
如果您的密钥不是数字,请记住使用对象而不是数组.
首先,给你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/