【问题标题】:Javascript object calling value with dynamic variable带有动态变量的Javascript对象调用值
【发布时间】:2011-07-06 03:24:48
【问题描述】:

这让我发疯了。我正在尝试使用动态变量在 javascript 中获取对象。静态变量似乎可以工作,但我一辈子都看不到我输入的静态变量和动态变量之间的区别。

我下面的 sn-p 更好地说明了这个问题

console.log(itemId); //E2
console.log(typeof itemId); //string
console.log(typeof 'E2'); //string
console.log(ganttObject.items['E2']); //object [with data]
console.log(ganttObject.items[itemId]); //undefined

奇怪的是,我在脚本的其他地方广泛使用了对象的动态调用,但它在这里中断了。

在 Safari 和 Chrome 中测试

【问题讨论】:

  • console.log(itemId === 'E2') 评估为真吗?您是否绝对确定您的代码中没有发生任何其他事情?
  • @Andy 不,它不会评估为真......除了类型之外,两个变量之间还有什么区别?如果第一个 console.log(itemId) 未定义或不是“E2”,这一切都有意义

标签: javascript variables object dynamic


【解决方案1】:

在 FF4 中为我工作:

您确定您的实际代码中没有错字或其他内容吗?

【讨论】:

  • 是的,这正是我希望看到的。我的代码不是这样。这些行是我尝试调试的直接复制粘贴。
  • 啊,我追查itemId的值到了源头,终于找到了答案。结果是 html 生成中的编辑在我的 id 之后添加了一个空格。故事的寓意: > 请记住,尾随空格不会显示在控制台窗口上
【解决方案2】:

通过追查itemId的值,我终于找到了答案。结果是在 html 生成中的一个编辑在我的 id 之后添加了一个空格。

故事的寓意:

请记住,尾随空格不会显示在控制台窗口中

【讨论】:

    猜你喜欢
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多