0

私はjqueryで働いています。最初の div から 2 番目の div に画像を追加するスクリプトを作成しました。ただし、同じ画像を 2 回追加できるようにしたくありません。

これが最初の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>

2 番目の 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 の追加は正常に機能しますが、同じ項目を 2 回追加することができます。どうすればこれを防ぐことができますか? よろしくお願いします。

4

3 に答える 3

0

これを行うには多くの方法があります...追加されたクラスにクラスを追加し、そのクラスを<img>確認できます..using 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
   }
}
于 2013-01-09T11:30:05.990 に答える
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 のフル パスがある場合は、$ を削除してみてください。

于 2013-01-09T11:29:04.803 に答える