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

标签 jquery jquery-selectors

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

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: $('#FeatureListTable td:nth-child(5)').eq(i-1).val(),

为什么会发生这种情况?

提前致谢,朱利安

最佳答案

不知道为什么 Remark当您注释掉 Value 时,值会改变行,但是这一行:

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

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

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

关于循环中的 Jquery 选择器给出的结果不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4598489/

相关文章:

JQuery,根据2个属性条件显示元素

javascript - 单击具有相同名称的第二类名称

javascript - 如何将转换后的文本字符串还原为原始 HTML 布局?

javascript - 如何检测用户退出页面?

Javascript 内联函数调用

jquery 查找 <td> 内的文本

Jquery 获取下一个兄弟

jquery - jQuery UI 的星级评定小部件

java - 元标记在几分钟内刷新

javascript - 在javascript中设置变量