2014-09-10 53 views
0

已解決:問題是我想清除瀏覽器的緩存,也許我解決了jquery-min map 404錯誤(謝謝未定義的幫助)。jQuery-Append方法只創建元素,但不是元素中的ID

我有一個HTML代碼,我有一些div標籤:

<div class="results"> 
     <div id="r1" class="horizontal element"> 
      <img src="logo1.jpg" class="photo"> 
      <div id="1" class="data"></div> 
     </div> 
    </div> 

,我有這個jQuery的代碼,我添加更多的元素到<div class="results"></div>當我點擊一個按鈕:

$("#show_more").click(function(){ 
$(".results").append('<div id="r2" class="horizontal element"><img src="logo2.jpg" class="photo"><div id="2" class="data"></div></div>');}); 

問題是,如果我想alert()id =「data」,只有id =「1」將顯示不是id =「2」,儘管該元素是創建(可見)。
我試圖重新排列jquery代碼的位置,但沒有任何反應。我做錯了什麼?謝謝。

回答

0

假設你已經使用$('.data').attr('id')用於獲取id S,attr爲集合中的第一個元素的吸氣回報價值,就應該通過收集迭代和閱讀id小號獨立。

我用$('.data').click(function(){ alert($(this).attr('id')); });

這意味着你應該委託的情況下,執行該代碼時,$('.data')選擇該存在在該特定時刻的.data元件時,集合不包含所生成的元素:

$('.results').on('click', '.data', function() { 
    alert(this.id); 
}); 

另請注意,您不應使用重複的ID。你的代碼應該處理。

+0

仍然無法正常工作。我僅收到第一個存在的元素的警報消息。我使用append創建的一個甚至不顯示alert()框。 – 2014-09-10 23:34:00

+0

@garrytowel您是否動態生成'.results'元素?你使用的是哪個版本的jQuery? – undefined 2014-09-10 23:35:43

+0

沒有結果存在。我在裏面追加元素。 jQuery v1.10.2 – 2014-09-10 23:37:17