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"));
});
当点击div时,我想提醒src它的内部图像。
但是当我点击它时没有任何反应......甚至没有弹出警告对话框。
我做错了什么?
答案 0 :(得分:1)
我使用了find
。 find和children之间的区别在于find遍历DOM。虽然这里没有太大的内容所以它并不重要(但是关于两个here的速度有一个有趣的讨论)
alert($(this).find("img").attr("src"));
此fiddle显示了它的实际效果。
根据建议您可以同样使用children
alert($(this).children("img").attr("src"));
但有几点需要注意:
在设置点击处理程序(createPicItem()
)之前运行$("#merchCatalog div.merchPic").click
非常重要,否则它将无法附加任何内容。可以看到一个很好的解决方案here。
如果您查看控制台(开发人员工具),您会注意到会引发错误。该错误告诉您选择器$(this+">img")
不起作用。故事的寓意,检查控制台!
答案 1 :(得分:0)
尝试alert($(this).children("img").attr("src"));
这将在div的第一级搜索图像元素