我有一个div
点击(删除按钮),位于我页面img
之后。
<div class="item">
<img src="/media/BodyPart_e4fc6673-1476-42d2-a98d-947b0e79fd99/300/0" class="media-item">
<div class="remove" title="Remove"></div> //getting clicked
</div>
所以点击事件我通过以下代码访问img:
var img = $(this).prev("img.media-item");
然后我想访问img
var extracted_string = img.src.match(/BodyPart[^\/]*/);
但是img.src
未定义
我该如何解决这个问题?
更新
我只是发现如果我会这样做$(this).prev("img.media-item").attr("src")
- 我可以得到src
但为什么var img = $(this).prev("img.media-item"); $(img).attr("src")
无效
答案 0 :(得分:1)
jQuery中一个干净的方法,可以通过img
div中的点击获取.remove
,如下所示:
$(".remove").click(function(e) {
var src = $(this).closest(".item").find(".media-item").attr("src");
});
这样做的好处是,即使布局稍微改变,它也会找到所需的图像,因此它不依赖于元素的精确相对定位(使其比依赖于一个元素的技术更健壮)就在另一个之前)。
这是jQuery代码中一种非常常见的技术,用于在树的同一分支中查找另一个元素,并且当重复的项目组具有相同的结构时,它们运行良好。点击任何.remove
项都可以对同一分支中的任何其他项进行操作。
答案 1 :(得分:0)
试试这段代码
var imgPath = $('.item img').attr('src');
答案 2 :(得分:0)
希望您使用的是jQuery,然后尝试:
var extracted_string = img.attr('src').match(/BodyPart[^\/]*/);