2015-05-22 112 views
1
function createPicItem(num) { 
    $("<div></div>") 
     .addClass("merchPic") 
     .append($("<img/>") 
       .attr("src", merch[num].picAdd) 
       ).appendTo("#merchCatalog"); 
}//End of function CreatePicItem 
//-------------------------------------------------- 
$("#merchCatalog div.merchPic").click(function() { 
    alert($(this+">img").attr("src")); 
}); 

當格被點擊我要提醒其內部圖像的src。獲取訪問div的孩子的jQuery

但是,當我點擊它沒有任何反應......即使警報對話框不會彈出。

我在做什麼錯?

+0

** Wow **是您原來的縮進誤導。 Barmar已經幫助你清理它。 –

+0

我想知道是否有統計數據說明我花了多少時間進行編輯而不是回答。 :) – Barmar

+0

親愛的@Barmar我再次看着我的問題...你爲我編輯了什麼??我沒有注意到任何改變...提及你編輯給我plz ... Tnx :) –

回答

0

嘗試alert($(this).children("img").attr("src"));這將在

+0

@ T.J.Crowder - 對不起,我已更新我的回答 –

1

我用find的div的第一級爲圖像元素進行搜索。 find和children之間的區別在於,查找遍歷DOM。沒有太多的在這裏,但這樣也沒關係(但有關於兩個here的速度一個有趣的討論)

alert($(this).find("img").attr("src")); 

fiddle顯示它在行動。

正如有人建議你同樣可以使用children

alert($(this).children("img").attr("src")); 

有幾件事情,雖然要注意:

  1. 重要的是,createPicItem()設置您的點擊處理程序之前已經跑($("#merchCatalog div.merchPic").click)因爲否則它不會有任何附加。一個好的解決方案可以看到here

  2. 如果你看看控制檯(開發人員工具),你會注意到一個錯誤被拋出。該錯誤告訴您,您的選擇器$(this+">img")不起作用。故事的寓意,檢查控制檯!

+0

非常感謝您的回覆和解釋:) –