假设我使用 $('some html') 创建一个元素,像这样:
var imgSrc = determineImageURL();
var myImg = $('<img>', { src: imgSrc })[0]; // Creates a new <img>.
我的问题是:
- 谁是新元素的父元素? 文档? 窗口?没有任何?这对所有浏览器都一样吗?
- 假设我需要多次运行该代码,并且每次计算可能不同的 imgSrc 。当 myImg 更改或当前函数返回时,新元素是否会变成垃圾(并且可能会被收集)?或者我必须保留单个 并仅更改 src 属性?
最佳答案
myImg
的父级取决于您将其附加到的位置。仅给出您引用的代码,就没有。
如果您未将节点附加到函数中的父节点,则函数返回时,新元素将被垃圾回收。
使用 var
声明的变量仅在函数作用域中存在,除非您创建对它的其他引用(附加到父级或在闭包中引用)。
关于javascript - jQuery:新的临时 DOM 元素的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866834/