我正在尝试使用用户单击的表行的值构建和数组。
所以现在我把所有这些都放在了
中$('#myDiv').find('tr').click(function(){
并将变量分配给用户单击的行中表格中的列
var firstName = $(this).find('td:nth-child(1)').text();
var middleName = $(this).find('td:nth-child(2)').text();
var lastName = $(this).find('td:nth-child(3)').text();
所以现在我想把它们放在一个数组中
var userRow = [];
userRow['firstName'] = firstName;
userRow['middleName'] = middleName;
userRow['lastName'] = lastName;
所以事实是,用户可以点击多个表行。单击一行时,它会切换行中的一个类“突出显示”(这会更改行的背景颜色)
我坚持创建一个循环,以便他们点击的所有行都被添加到另一个数组中。有点像这样 -
Array1 {
userRow {
'firstName' = ...;
ect...
}
}
所以当我引用Array1时,它会向我显示我从所有行中获取的所有信息,其中包含'highlight'类,我将其放入数组'userRow'
我已经阅读了javascript数组,但就像我说我被困住了并且可以使用一些帮助。非常感谢,谢谢。
编辑:我现在就要离开,明天我会回来选择答案。感谢所有人帮助我理解
答案 0 :(得分:1)
javascript中的数组是索引的,而不是关联的。但是,javascript对象的行为非常类似于关联数组。因此,您可以这样做:
var userRow = {}; // curly brackets!
userRow['firstName'] = firstName;
userRow['middleName'] = middleName;
userRow['lastName'] = lastName;
然后,您通常可以将此userRow对象添加到另一个数组中:
var Array1 = [];
Array1.push(userRow);
答案 1 :(得分:1)
Javascript没有关联数组。看起来像关联数组的语法实际上是对象的括号表示法。因此myObj.prop1
和myObj['prop1']
完全相同。
我想你想要这样的东西:
var selectedRows = $.map($('#myDiv tr.highlight'), function(row, idx) {
$row = $(row);
return {
firstName : $row.find('td:nth-child(1)').text(),
middleName : $row.find('td:nth-child(2)').text(),
lastName : $row.find('td:nth-child(3)').text()
};
});
selectedRows
将是一个数组,其中包含许多带有firstName
,middleName
和lastName
键的对象。
答案 2 :(得分:1)
JS-array不支持字符串键。 改为使用对象:
var userRow = {};
userRow.firstName = firstName;
userRow.middleName = middleName;
userRow.lastName = lastName;
之后,您可以将userRow
推送到Array1
:
Array1 = [];
Array1.push(userRow);
或再次使用对象:
WrapObj = {}; // like Array1 but object
WrapObj.someId = userRow;
答案 3 :(得分:1)
我认为你可以使用类似的东西。
我会以您编写的方式编写简单的代码,以便您轻松理解。
var arr;
$('#myDiv').find('tr').click(function(){
// initialize array
if (typeof(arr) == 'undefined')) {
arr = new Array();
});
// read values
var firstName = $(this).find('td:nth-child(1)').text();
var middleName = $(this).find('td:nth-child(2)').text();
var lastName = $(this).find('td:nth-child(3)').text();
// create your object
var yourObject = {
'firstName' : firstName,
'middleName' : middleName,
'lastName' : lastName
};
// add your object to the array
arr.push(yourObject);
});