循环中的 Jquery 选择器给出的结果不明确

发布于 2024-10-10 19:40:09 字数 521 浏览 2 评论 0原文

我很困惑:以下代码发生了什么

var ProductFeatures = [];

for (var i = 1; i < 3; i++) {
    ProductFeatures.push({
        Guid: $('#FeatureListTable tr').eq(i).attr('id'),
        Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),
        Remark: $('#FeatureListTable td:nth-child(6) input').eq(i-1).val()
    });
}

当我注释掉“Value:”行时,我在“备注”字段中得到的结果与没有注释时不同,

// Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

为什么会发生这种情况?

预先感谢,朱利安

I am confused: whats going on with the following code

var ProductFeatures = [];

for (var i = 1; i < 3; i++) {
    ProductFeatures.push({
        Guid: $('#FeatureListTable tr').eq(i).attr('id'),
        Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),
        Remark: $('#FeatureListTable td:nth-child(6) input').eq(i-1).val()
    });
}

When I comment out the "Value:" row, I get a different result in the Remark field than when there are no comments

// Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

Why does this happen?

Thanks in advance, Julian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你爱我像她 2024-10-17 19:40:09

不确定为什么当您注释掉 Value 行时 Remark 值会发生变化,但是这一行:

Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

...只会返回 null 或 < code>undefined (我不记得是哪一个),因为它试图获取 value 而不是表单输入。

使用 jQuery 的 .map() 方法可以更好地构建这种数据结构。

Not sure why the Remark value would change when you comment out the Value line, but this line:

Value: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

...would only return null or undefined (I don't remember which one), because it is trying to get the value of a <td> instead of a form input.

This sort of data structure is much better built using jQuery's .map() method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文