从其他元素上的click事件访问image src属性

时间:2015-04-02 04:09:49

标签: javascript jquery html css

我有一个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

的src属性
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")无效

3 个答案:

答案 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[^\/]*/);