我想在 Array()
中保存相同的对象类型
例如,当我想选择所有复选框并将值保存在数组中时:
selectAllCbs: function() {
var self = this;
$('#' + instanceName + 'table_form input[type=checkbox]').each(function(index,cb) {
if($(cb).prop('disabled') == false) {
$(cb).prop('checked',true);
console.log("Select all clicked:" + cb); //gives me [object HTMLInputElement] result
selected.push(cb); //save to an array
self.changeRowStyle(cb);
}
});
当用户单击该行时我使用几乎相同的代码时,我得到不同的类型:
rowClicked: function(id) {
var cb = $('#' + instanceName + 'cb_' + id);
if($(cb).is(':checked')) {
$(cb).prop('checked',false);
selected.splice(selected.indexOf(this.value),1);
} else {
$(cb).prop('checked',true);
console.log("Row clicked:" + cb); //gives me [object Object]
selected.push(cb);
}
this.changeRowStyle(cb);
},
所以主要问题是如何将 rowClicked 元素保存在 [object HTMLInputElement]
类型中?
因为在第一个示例中,我可以使用 selected[i].value
读取值,而在第二个示例中,我需要使用 selected[i][0].value 读取它
.
最佳答案
在rowClicked
中,替换:
selected.push(cb);
与:
selected.push(cb[0]);
并在 rowClicked
中为 this.changeRowStyle(cb[0])
方法执行相同的操作
关于javascript - 如何在数组中保存相同的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992247/