我正在尝试使用
构建一个数组userRow {}$('#divResults tr').find('td:nth-child(2)').text();
将返回12个名字,从html表格列Ex中获取。约翰,戴夫,等等。
$('#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(第一个中间最后一个)等等
答案 0 :(得分:2)
您需要遍历每个$('#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次
或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
答案 1 :(得分:0)
在js中没有类似关联数组的东西,只有以数组样式访问的对象。我认为您应该在将日期添加到userRow[i] = {}
剩下的代码对我来说还不清楚......
答案 2 :(得分:0)
仅仅依靠您提供的代码,请试一试:
var userRow = [];
for ( var i=0; i < 12; i++) {
var jurorFN = $('#divResults tr').find('td:nth-child(2)').text();
var jurorMN = $('#divResults tr').find('td:nth-child(3)').text();
var jurorLN = $('#divResults tr').find('td:nth-child(4)').text();
var fullName = jurorFN + ' ' + jurorMN + ' ' + jurorLN;
userRow.push(fullName);
}
console.log(userRow[0]); // up to userRow[11]