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。在它里面,您将把资产列表中的每个元素添加到DOMlength-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);