2

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

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

}); 

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

2 回答 2

5

你颠倒你的逻辑。而不是.append(),您应该使用.appendTo()

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

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

myRef.hide();

将缓存的引用存储到变量中总是更好,这样您就可以从纯ECMA 土地访问节点,可以这么说。重新查询DOM 节点的需要只是效率低得多。

需要注意的一点:由vardo 声明的变量只有自己的函数范围。这意味着如果您想从准备好的处理程序的“外部”访问该引用,则需要在父上下文中声明该变量。

于 2012-12-05T00:56:30.093 回答
2

您已经拥有的应该可以工作,除非您需要$('#testdiv').hide();在准备好的文档中移动(因此您不会在创建元素之前调用它)。

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

于 2012-12-05T00:56:27.857 回答