我想将变量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>' );
}
当我执行$wrap.append( img );
时,一切都按预期进行。该元素将附加到$wrap
。 问题是我不必将它们附加到$wrap
但是每个(根据数组长度)必须附加到其正确的<figure>
标记因此,当我执行此代码时:$wrap.append( '<figure>' + img + '</figure>' );
这是我想要的代码,输出为:<figure>[object Object]</figure>
。
有什么建议吗? 如何将动态创建的元素附加到其他动态创建的元素?
您可以找到代码here
和here
答案 0 :(得分:2)
试一试:
$wrap.append($('<figure/>').append(img));
'<figure>' + img + '</figure>'
是string + Object + string
。 Js将结果作为字符串返回,这意味着它将调用.toString()
函数将每个不是字符串的变量转换为字符串。 img
是一个jQuery对象而不是字符串,因此将调用img.toString()
,其结果为[object Object]