javascript - 无法使用哈希语法从 JS 对象检索值

标签 javascript jquery json

通过 [] 运算符访问 JS 对象的属性时,我看到了奇怪的行为。

我的表中有 3 列'attr1'、'attr2'、'attr3'。我的 JS 对象有一个名为 Attributes 的属性,它是一个哈希表,看起来像 {attr1: 'val', attr2: 'val', attr3: 'val'}

下面的代码工作正常

function onRowDataBound(e) {
    var attributes = e.dataItem.Attributes;
    var keys = {0: 'attr1', 1: 'attr2', 2: 'attr3'};
    for (var key in keys) {
        var keyVal = keys[key];
        var attribute = attributes[keyVal];
        if (attribute != undefined) {
            e.row.cells[key].innerText = attribute;
        }
    }
}

但是,在下面的代码中,我动态构建了键对象; 属性始终未定义。

function getKeys() {
    var keys = {};
    $('#Equipment thead th').each(function() {
        keys[this.cellIndex] = this.innerText;
    });
    return keys;
}

function onRowDataBound(e) {
    var attributes = e.dataItem.Attributes;
    var keys = getKeys();
    for (var key in keys) {
        var keyVal = keys[key];
        var attribute = attributes[keyVal];
        if (attribute != undefined) {
            e.row.cells[key].innerText = attribute;
        }
    }
}

最佳答案

尝试 trim 该值:

$('#Equipment thead th').each(function() {
    keys[this.cellIndex] = jQuery.trim(this.innerText);
});

您知道每次迭代时 keyVal 到底包含什么吗?

关于javascript - 无法使用哈希语法从 JS 对象检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4393272/

相关文章:

jquery - 如何使用 jquery 将 json 结果写入 div?

javascript - 使用 jquery.validate.unobtrusive 验证复选框

javascript - 如何在同一页面中添加 2 个 signature_pad

json - 如果第一次解码失败使用 Combine 和 Swift 解码另一个响应

javascript - JSON Object javascript,如何获取值而不是键

javascript - 打开一个多打开的 Accordion 选项卡并滚动到该部分中的哈希位置(IE 在评估查询字符串之前滚动到哈希 anchor ?)

javascript - 使用 VS Code、TypeScript 和 Node.js 的断点位置不正确

javascript - 数据库、servlet、json、javascript 和 highchart 饼图

javascript - 根据条件强制刷新

javascript - Bootstrap popover(draggable) 拖动后跳转,怎么办?