如何访问动态创建的对象

时间:2012-12-05 00:52:55

标签: javascript jquery

我正在动态创建一个对象。我想知道如何访问它?其中一些对象需要通过其他方式隐藏,而不是单击(以编程方式,按钮单击,链接等)。所以我不认为我可以使用.on。我将如何访问这些以隐藏它们?

$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');

}); 

$('#testdiv').hide();

2 个答案:

答案 0 :(得分:5)

你改变你的逻辑。您应该使用.append()

而不是.appendTo()
var myRef = $("<div id=\"testdiv\">Test DIV</div>").appendTo( document.body );

这样,您可以保留对新创建的 DOM节点 / jQuery对象的引用。

myRef.hide();

总是更好将缓存引用存储到变量中,因此您可以从纯 ECMA land 访问节点,可以这么说。 重新查询对DOM节点的需求,效率低得多。

提醒一句:var声明的变量只拥有功能范围。这意味着如果您想从就绪处理程序的“外部”访问该引用,则需要在父上下文中声明该变量。

答案 1 :(得分:2)

你已经得到了什么应该工作,除了你需要在文档中准备好$('#testdiv').hide();(所以你没有在创建元素之前调用它)。

另一个答案是更清洁的方式,以及我将这样做的方式。