2009-05-28 52 views
0

我一直使用JavaScript作为“UI胶水”,并且(遗憾地)成为那些将JS视为“玩具”的人之一。不过,我改变了方向,并在使用中发现了一些真正的力量 - 尤其是与JSON/jQuery相结合。在插入DOM之后保持对元素的引用

我的问题涉及动态创建元素,然后将它们附加到DOM。似乎发生这种情况时,只有该对象的副本被附加到DOM,我失去了对它的引用。例如,如果我使用createElement创建一个全局对象(比如“a”),设置一些属性(“href”,“title”等),然后将其附加到DOM中,任何对我的全局对象的原始引用对附加元素没有影响。我确信我可以找到我刚刚插入的对象,但这看起来好像比应该做的更多的工作。我错过了什么吗?

回答

0
var new_div = document.createElement('div'); 
new_div.id = 'foo'; 

编辑:只要重新读你的问题,你说new_div后appendChild不工作?我很确定它应该。你不是通过innerHTML或类似的东西添加它?

也许你的var超出了你想要阅读的范围。 (即,你是在一个函数中创建它并从另一个函数读取它?)。尝试全局声明对象。

+0

我发现了这个问题。我试图通过使用“setAttribute”奇怪地设置对象的属性。看起来,IE浏览器并不喜欢很多东西。深入客观解决问题 - 例如el.style.color ='green'works,el.setAttribute(“style”,“color:green;”)失败。 – BradBrening 2009-05-28 18:19:46

0

您的原始全局引用仍然可以正常工作。你想用它做什么?你有任何示例代码?

0

您使用的图书馆或东西是包装本地DOM对象?这可能是问题...

0

所有对象都通过在JavaScript中引用传递,和HTMLNodes也不例外。您的原始参考应始终有效,直到您为其指定一个不同的值。听起来像你有一个范围问题。我们可以看到代码吗?