我在jquery工作。 我写了一个脚本,将第一个div的图像添加到第二个div。 但是,我不希望它能够两次添加相同的图像。
这是第一个div的代码
<div><span class="span1">
<img width="30" hieght="30" name="productimage" src="http://panther:805/Computers.jpg"></span>
<span class="span1">Black_xxl_Slim</span>
<span class="span1">1</span>
<a class="pull-right" href="#"><i onclick="Add(this)" class="icon-plus"></i></a>
</div>
以下是第二个div的代码:
<div class="span6" id="separat">
<ul class="thumbnails pre-scrollable" id="productbundles">
</ul>
</div>
这是我的jquery
function Add(obj) {
var img = $(obj).closest('div').find('img').first();
var image_src = $(img).attr('src');
var newobj = $('<li class="span2" id="bunle' + id++ + '"><a href="javascript: void(0)"><img hieght=30 width=30 src="' + image_src + '" /></a><h5>'+"Name:" + name + '</h5><span id="pric' + id + '"><b>'+ "Price:"+ price + '</b></span>');
$('#productbundles').append(newobj);
}
添加div工作正常,但它允许相同的项目添加两次。 我怎么能阻止这种情况发生? 在此先感谢您的帮助。
答案 0 :(得分:0)
您必须拥有已经存在或已添加的图像列表,以避免再次添加它们。只需构建一个列表:
var added_images = [];
并使用简单的方法检查列表中的图像存在:
if (added_images.indexOf(src)) {
// image already exists
} else {
// add the image to the list
added_images.push(src);
// and DOM...
}
答案 1 :(得分:0)
if(!$("#productbundles img[src$='" + image_src + "'").length)
{
var newobj = $('<li class="span2" id="bunle' + id++ + '"><a href="javascript: void(0)"><img hieght=30 width=30 src="' + image_src + '" /></a><h5>'+"Name:" + name + '</h5><span id="pric' + id + '"><b>'+ "Price:"+ price + '</b></span>');
$('#productbundles').append(newobj);
}
如果您有完整的src路径,请尝试删除$。
答案 2 :(得分:0)
执行此操作的方法很多...您可以向已添加的<img>
添加一个类,并检查该类...使用hasClass
。
我这样做的方式是..创建一个数组..并将src
推入数组并检查数组中是否存在src
function Add(obj) {
var addedImagesArray=[];
var img = $(obj).closest('div').find('img').first();
var image_src = $(img).attr('src');
var newobj = $('<li class="span2" id="bunle' + id++ + '"><a href="javascript: void(0)"><img hieght=30 width=30 src="' + image_src + '" /></a><h5>'+"Name:" + name + '</h5><span id="pric' + id + '"><b>'+ "Price:"+ price + '</b></span>');
if (addedImagesArray.indexOf(image_src)) {
alert("Image Already Added");//src present in the array so do nothing or show an alert..
} else{
$('#productbundles').append(newobj); //append the image
addedImagesArray.push(image_src); ///add src to array
}
}