Jquery 将元素动态附加到另一个动态元素

Jquery 将元素动态附加到另一个动态元素,jquery,arrays,json,object,append,Jquery,Arrays,Json,Object,Append,我想将变量img附加到figure元素。所有内容都是从JSON文件动态加载的。除了必须将元素附加到现有的$wrap for (i = 0; i < arr.length; i++) { var url = arr[i].url, img = $('<img src="'+ url +'">').load(function(){ var imgW = this.width, imgH = this.height;

我想将变量
img
附加到
figure
元素。所有内容都是从JSON文件动态加载的。除了必须将元素附加到现有的
$wrap

for (i = 0; i < arr.length; i++) {
  var url = arr[i].url,
      img = $('<img src="'+ url +'">').load(function(){
          var imgW = this.width,
              imgH = this.height;

          img.attr({
              width: imgW,
              height: imgH
          });
      });

  $wrap.append( '<figure>' + img + '</figure>' );
}
for(i=0;i
当我执行
$wrap.append(img)时一切都按照我的预期进行。元素被附加到
$wrap
问题是,我不必将它们附加到
$wrap
中,但它们中的每一个(根据数组长度)都必须附加到其适当的
标记中,因此当我执行此代码时:
$wrap.append('+img+'')
这是我想要的,输出是:
[object object]

有什么建议吗? 如何将动态创建的元素附加到其他动态创建的元素

你可以找到代码

试试看:

$wrap.append($('<figure/>').append(img));
$wrap.append($('').append(img));

'+img+'
string+Object+string
。Js将以字符串的形式返回结果,这意味着它将调用
.toString()
函数将非字符串的每个变量转换为字符串
img
是一个jQuery对象,而不是字符串,因此将调用
img.toString()
,其结果是
[object object]

这起作用,但属性不会显示。我需要img标签带有我之前添加的高度和宽度属性。@user2153436这很有效!你的代码工作得很好,谢谢。我可以问你为什么属性只显示在最后一个img标签中吗?