【问题标题】:prototype and dom not delivering expected result原型和 dom 没有提供预期的结果
【发布时间】:2013-03-16 11:43:21
【问题描述】:

我正在尝试根据返回的 JSON 更新(替换内容)表格单元格。

如果我使用 console.log 在循环中呈现我的结果 - 我会得到正确/预期的结果。 但是,当我添加 DOM 引用时 - (页面)没有任何反应

如果我在控制台中键入 js 来更改 DOM - 它可以工作...所以我确定语法是正确的...

这是 ajax 调用的一部分,其内容与问题无关 - 因为返回 (response.responseJSON) 是正确的..

onSuccess: function( response ) {
var p = response.responseJSON;
for ( var key in p ) {
    if ( p.hasOwnProperty( key ) ) {
    console.log( key + " = " + p[key] ); // this works, loops correct number and shows key/value as expected
    document.getElementById[key].update('hey'); // if i add this the loop doesn't go past the first key/value - and the page element that matches the key does not change
    }
}
}

如果我在控制台中键入“document.getElementById['myKey'].update('hey');”,'myKey' 的 heml 元素 id 会更改为 'hey'...

我很困惑。

【问题讨论】:

  • 为什么不直接使用$(key).update('hey');

标签: javascript dom prototypejs


【解决方案1】:
document.getElementById(key)

用括号代替方括号

var e = document.createElement("DIV");
e.id = "test123123";
document.body.appendChild(e);
console.log(document.getElementById["test123123"]); // undefined
console.log(document.getElementById("test123123")); // actual DOM element

【讨论】:

  • thx - 我对 javascript 感到非常沮丧......并且看不到一些小东西。感谢帮助
猜你喜欢
  • 2014-09-06
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多