gpt4 book ai didi

javascript - 为什么推送到数组时会得到空对象?

转载 作者:行者123 更新时间:2023-11-28 18:19:32 25 4
gpt4 key购买 nike

我有以下代码片段:

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 行,则数组包含 [{},{},{},{}]

我在这里做错了什么? (我也尝试过使用带引号的标识符,结果没有差异)

最佳答案

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")
});
});

关于javascript - 为什么推送到数组时会得到空对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40123551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com