jQuery remove()方法未移除DOM对象引用的问题咨询
jQuery移除DOM元素后引用仍存在的疑问
重点说明:当我创建一个DOM对象的引用并移除该元素后,引用仍然存在。
var test = $("#test") console.log(test.length); //1 $('#test').remove(); console.log(test.html()); //test console.log( $("#test").html() ) //undefined
我认为这可能是jQuery的新特性或bug;我们最近进行了版本更新。如果情况属实,这会是一个之前版本没有的重大系统性问题(我很确定)。
编辑1:这个变量是元素的克隆吗?它应该是指向元素的指针/引用。
编辑2:拥有DOM对象的指针难道不合理吗?我希望有一个指向DOM对象的变量,这样无需每次都在DOM中进行选择就能监控它。
编辑3:多个函数修改全局作用域对象的简化示例
GLOBAL_OBJECT ={}; function add_image(itemName =="item1"){ //获取元素并插入DOM $(body).append(largeImage); GLOBAL_OBJECT[itemName] = $(largeImageID); } function move_me(itemName){ if(itemName in GLOBAL_OBJECT && GLOBAL_OBJECT[itemName].length){ GLOBAL_OBJECT[itemName].css( "top":aTop, "left":aLeft ) }else{ add_image(itemName); } } function hideImages(){ $('canvas.largeImages').remove(); } add_image(); hideImages(); move_me("item1");
官方手册说明:
在DOM中搜索所有匹配指定选择器的元素,并创建一个引用这些元素的新jQuery对象
内容的提问来源于stack exchange,提问作者LrakWortep
相关产品推荐
相关产品推荐

