我正在尝试获取在我点击链接之前放置的图像的src:
<ul id="grid">
<li><a href="prod-det.php" class="tip" rel="product-tip.php"><img src="../upload/mainmenu-articolo-ico.jpg" width="110" height="115"><p>GSE29KGYCSS / GSE29KGYCWW</p></a>
<div class="options">
<a href="#briciole" class="opt-compare off">Compare</a>
<a href="#briciole" class="opt-wish off">Wishlist</a>
</div></li>
并写下这条路:
$('.options a').click(function() {
$("#compare .myge-grid").append(closest('img').attr('src'));
但是我没有获得img src。 有人能指点我正确的方向吗? 事先提前
编辑:此处更多代码http://jsfiddle.net/X2NBn/1/
答案 0 :(得分:1)
更新:
根据您的文档结构,这是您正在寻找的:
$("img", $(this).parents('li:first')).attr("src");
注意:attr("src")
会在HTML源代码('../upload.png')中返回已定义的src
。如果您想要完整路径,请改用.prop("src")
。
<小时/> 旧答案
.closest()
方法的JQuery对象。
目前,您没有使用jQuery .closest
方法,而是使用(可能是未定义的)closest()
函数。
在添加$(this)
后,这应该按预期工作:
$('.options a').click(function() {
$("#compare .myge-grid").append($(this).closest('img').attr('src'));
答案 1 :(得分:0)
closest
不是魔法。它并不意味着“视觉上最接近”。它的意思是“最近的祖先”。不是每次点击元素时都搜索列表项,而是在Rob W的答案中,你最好迭代列表项,并依次将点击处理程序绑定到每个项目,如下所示:
$('#grid li').each(function() {
var item = $(this);
item.find('.options a').click(function() {
$("#compare .myge-grid").append(item.find('img').attr('src'));
});
});