我正在动态创建一个对象。我想知道如何访问它?其中一些对象需要通过其他方式隐藏,而不是单击(以编程方式,按钮单击,链接等)。所以我不认为我可以使用.on。我将如何访问这些以隐藏它们?
$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');
});
$('#testdiv').hide();
答案 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();
(所以你没有在创建元素之前调用它)。
另一个答案是更清洁的方式,以及我将这样做的方式。