我有以下代码段:
var options = [];
$("tr.mks-option-row").each(function (row) {
options.push({
Id: $(row).data("option-id"),
CategoryId: $(row).data("category-id"),
Value: $(row).data("option-text")
});
});
其中.mks-option-row
是表中所有行的选择器。该表包含几个数据元素,我也在tr
本身作为数据属性重复。
但是,当完成此代码段时,options
数组包含n
个空对象文字。如果表中有4行,则数组包含[{},{},{},{}]
我在这里做错了什么? (我也尝试使用引用的标识符,结果没有区别)
答案 0 :(得分:3)
row
作为回调函数的行列表中的元素索引传递,您需要使用this
才能将该行作为jquery对象获取:
var options = [];
$("tr.mks-option-row").each(function () {
options.push({
Id: $(this).data("option-id"),
CategoryId: $(this).data("category-id"),
Value: $(this).data("option-text")
});
});
<强>更新强>
更具体地说,$.each
期待function(index, element)
。这是一个选择;忽略第一个论点是另一个。
$("tr.mks-option-row").each(function (row, element) {
options.push({
Id: $(element).data("option-id"),
CategoryId: $(element).data("category-id"),
Value: $(element).data("option-text")
});
});