0

假设我使用$(' some html ')创建一个元素,如下所示:

var imgSrc = determineImageURL();
var myImg = $('<img>', { src: imgSrc })[0]; // Creates a new <img>.

我的问题是:

  • 谁是新元素的父元素?文件窗户?没有任何?这对所有浏览器都一样吗?
  • 假设我需要多次运行该代码,并且每次计算一个可能不同的imgSrc。当myImg更改或当前函数返回时,新元素是否会变成垃圾(并且可能会被收集)?或者我必须保留一个 <img> 并且只更改src属性?
4

1 回答 1

3

的父级myImg取决于您将其附加到的位置。仅给出您引用的代码,它没有。

如果您没有将节点附加到函数中的父节点,则新元素在函数返回时被垃圾收集。

声明的变量var只能在函数范围内生存,除非您创建对它的其他引用(附加到父级或在闭包中引用)。

于 2012-06-03T00:13:11.940 回答