我正在尝试使用构建一个数组 userRow{}
$('#divResults tr').find('td:nth-child(2)').text();
它将返回 12 个名字,从 html 表列中获取约翰、戴夫等..
$('#divResults tr').find('td:nth-child(3)').text();
返回中间名等。
我尝试过的:
for ( var i=0; i < 12; i++) {
userRow[i]['jurorFN'] = $('#divResults tr').find('td:nth-child(2)').text();
userRow[i]['jurorMN'] = $('#divResults tr').find('td:nth-child(3)').text();
userRow[i]['jurorLN'] = $('#divResults tr').find('td:nth-child(4)').text();
}
它不会console.log任何内容
我希望它循环表上的所有项目并拥有它,因此如果我提醒 userRow[1] 它将输出 Dave、M、Johnson(第一个中间最后一个)等
最佳答案
您需要迭代每个 $('#divResults tr')
:
var userRow = [];
$('#divResults tr').each(function(i) {
var tds = $(this).find('td');
userRow[i] = {}
userRow[i].jurorFN = tds.eq(2).text();
userRow[i].jurorMN = tds.eq(3).text();
userRow[i].jurorLN = tds.eq(4).text();
});
否则,您所做的就是将第一行复制到数组中 12 次p> <小时/>
或者使用 map
:
var userRow = $('#divResults tr').map(function() {
var tds = $(this).find('td');
return {
jurorFN: tds.eq(2).text(),
jurorMN: tds.eq(3).text(),
jurorLN: tds.eq(4).text()
};
}).get();
<小时/>
我所做的其他外观更改:
- 替换
.find('e:nth-child(n)')
与.find('e').eq(n)
,因为这允许find('e')
计算一次并重复使用 - 替换
obj['validIdentifier']
与obj.validIdentifier
关于Javascript-使用for循环构建 'associative'数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623781/