0

こんにちは、私はjqueryに取り組んでいます。複数の画像を追加しないようにする必要があります。ここにコードを書きましたが、

画像のインデックス値は常に-1で、条件が発生した場合は常に何か間違ったことをしています。事前に感謝します。

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

ここで私のコードは続きます

  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
         }
      }

上記の iam には 2 つの div があり、ある div から別の div に画像を追加しています

しかし、問題は私が常に-1のインデックス値を取得していることです。事前に感謝します

4

2 に答える 2

3

indexOf()戻り値をと比較する必要があります。また、関数の外のグローバル スコープで addedImagesArray を宣言する必要があります。-1

変化する

if(addedImagesArray.indexOf(image_src)) {

if(addedImagesArray.indexOf(image_src) != -1) {

addedImagesArray をグローバル スコープで宣言する

var addedImagesArray = [];
function Add(obj) {

           var img = $(obj).closest('div').find('img').first();
于 2013-01-10T11:17:32.550 に答える
1

変化する :

if(addedImagesArray.indexOf(image_src)) {
  alert("Image Already Added");

if(addedImagesArray.indexOf(image_src) > -1 ) {
  alert("Image Already Added");
于 2013-01-10T11:18:27.137 に答える