我正在动态创建一个对象。我想知道如何访问它?其中一些对象需要通过单击以外的其他方式隐藏(以编程方式,按钮单击、链接等)。所以我不认为我可以使用.on。我将如何访问这些以隐藏它们?
$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');
});
$('#testdiv').hide();
我正在动态创建一个对象。我想知道如何访问它?其中一些对象需要通过单击以外的其他方式隐藏(以编程方式,按钮单击、链接等)。所以我不认为我可以使用.on。我将如何访问这些以隐藏它们?
$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');
});
$('#testdiv').hide();
你颠倒你的逻辑。而不是.append()
,您应该使用.appendTo()
var myRef = $("<div id=\"testdiv\">Test DIV</div>").appendTo( document.body );
这样,您可以保留对新创建的DOM 节点/ jQuery 对象的引用。
myRef.hide();
将缓存的引用存储到变量中总是更好,这样您就可以从纯ECMA 土地访问节点,可以这么说。重新查询DOM 节点的需要只是效率低得多。
需要注意的一点:由var
do 声明的变量只有自己的函数范围。这意味着如果您想从准备好的处理程序的“外部”访问该引用,则需要在父上下文中声明该变量。
您已经拥有的应该可以工作,除非您需要$('#testdiv').hide();
在准备好的文档中移动(因此您不会在创建元素之前调用它)。
另一个答案是一种更清洁的方式,以及我会这样做的方式。