2012-05-29 15 views
-1

即時通訊嘗試創建一種圖片相對性thingy(不知道該怎麼稱呼它)。創建一個摘要,而不點擊jQuery

它將做什麼是創建圖像集中的水果的縮略圖。我想我會在if語句中提出一些問題。

下面是HTML代碼:

<div id="imageholder"> 
    <img src="images/1.png" id="img1" thumbnail="images/orange.png" title="orange"/> 
    <img src="images/2.png" id="img2" thumbnail="images/apple.png" title="apple"/> 
    <img src="images/3.png" id="img3" thumbnail="images/orange.png" title="orange"/> 
    <img src="images/4.png" id="img4" thumbnail="images/lime.png" title="lime"/> 
    <img src="images/5.png" id="img5" thumbnail="images/banana.png" title="banana"/> 
</div> 

<input type="submit" name="check" id="check" value="check" /> 

<ul id="thumb"></ul> 

這裏是jQuery代碼:

function checkit(){ 
    var list = $('#thumb'); 
    $("#imageholder img").each(function() { 
     var titleset = this.attr('title'); 
     var imageset = this.attr('thumbnail'); 
     var existing_item = $('#list_item_' + titleset); 
     if (existing_item.length < 1) { 
      var new_item = $('<li />'); 
      new_item.attr('id', 'list_item_' + titleset); 
      new_item.html('<div class="summarytitle">' + titleset + '</div><img src="' + imageset + '" class="swatch_s" />'); 
      list.append(new_item); 
     } else if (existing_item.length > 1) { 
      $('#list_item_' + titleset).attr('src', imageset); 
      $('#list_item_' + titleset).text(titleset); 
     } 
    }); 
} 

$("#check").click(function(){ 
    checkit(); 
}; 
+2

那麼你遇到的實際問題是什麼? – kevin628

+0

@ kevin628我認爲這只是他不工作,可能是因爲他使用'this'就像它是一個jQuery對象,使用'this.attr('等,應該是'$(this)'。我很確定他是否可以有JavaScript錯誤啓用他會看到這就是爲什麼它是死:) – mattytommo

回答

2

this是JavaScript對象, jQuery對象。您需要使用$(this)將其包裝到一個jQuery對象中。試試這個:

function checkit(){ 
    var list = $('#thumb'); 
    $("#imageholder img").each(function() { 
     var titleset = $(this).attr('title'); 
     var imageset = $(this).attr('thumbnail'); 
     var existing_item = $('#list_item_' + titleset); 
     if (existing_item.length < 1) { 
      var new_item = $('<li />'); 
      new_item.attr('id', 'list_item_' + titleset); 
      new_item.html('<div class="summarytitle">' + titleset + '</div><img src="' + imageset + '" class="swatch_s" />'); 
      list.append(new_item); 
     } else if (existing_item.length > 1) { 
      $('#list_item_' + titleset).attr('src', imageset); 
      $('#list_item_' + titleset).text(titleset); 
     } 
    }); 
} 

$("#check").click(function(){ 
    checkit(); 
}); //you were missing a ")" here too