Javascript jquery附加到DOM无法按预期工作

Javascript jquery附加到DOM无法按预期工作,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个简单的问题。我有这个功能: function buildGallery(assets) { var $target = $("#assets"); var containerWidth = $target.width(); var overallWidth = 0; var items = ""; $.each(assets, function (i, asset) { va

我有一个简单的问题。我有这个功能:

    function buildGallery(assets) {
        var $target = $("#assets");
        var containerWidth = $target.width();
        var overallWidth = 0;
        var items = "";

        $.each(assets, function (i, asset) {
            var percent = 300 / asset.Metadata.ImageHeight;
            var width = percent * asset.Metadata.ImageWidth;
            var item = "<img src=\"" + asset.ThumbNail + "\" />";

            overallWidth += width;
            items += item;

            if (overallWidth >= containerWidth) {
                var $items = $(items);
                var padding = overallWidth - containerWidth;
                var counter = $items.find("img").length;
                var p = padding / counter;

                $items.each(function (n, image) {
                    console.log(image);

                    var img = "<div style=\"float: left; width: " + p + "px; overflow: auto;\">" + image + "</div>";

                    $target.append(img);
                });

                overallWidth = 0; // reset
                items = "";
            }
        });

        $target.removeClass("ajax");
    }
功能构建库(资产){
var$目标=$(“#资产”);
var containerWidth=$target.width();
var总宽度=0;
var项目=”;
美元。每个(资产、功能(i、资产){
var百分比=300/asset.Metadata.ImageHeight;
var宽度=百分比*asset.Metadata.ImageWidth;
var项目=”;
总宽度+=宽度;
项目+=项目;
if(总宽度>=集装箱宽度){
变量$items=$(items);
var padding=总宽度-集装箱宽度;
var计数器=$items.find(“img”).length;
var p=填充/计数器;
$items.每个(函数(n,图像){
console.log(图像);
var img=“”+图像+”;
$target.append(img);
});
总宽度=0;//重置
项目=”;
}
});
$target.removeClass(“ajax”);
}
我的问题是,当我尝试将div添加到目标时,它只显示[object htmldevelment],而不是实际显示html

我以前见过这种情况,但无论我尝试什么似乎都不起作用。
有人能帮我一下吗?

问题是,您正在尝试使用image-DOM元素而不是其HTML来构建新的div元素:

var img = "<div style=\"float: left; width: " + p + "px; overflow: auto;\">" + image + "</div>";
                                           // this is a DOM object not a string ^

我认为您的代码可能还有另一个问题:它看起来像是
if(overallWidth>=containerWidth){
语句应该在
$之外。每个(资产,…)
loop。在它里面,您将把资产列表中的每个元素添加到DOM
length-index
次。

console.log(image)的输出是什么;?
var img = "<div style=\"float: left; width: " + p + "px; overflow: auto;\">" + image.innerHTML + "</div>";
var img = $("<div style=\"float: left; width: " + p + "px; overflow: auto;\"></div>").append(image);
$items.wrap("<div style=\"float: left; width: " + p + "px; overflow: auto;\"></div>").appendTo($target);