0

我有这种情况:

<img class="prev" data-modal-img-src="asd"/>
<span></span>
<img class="next"/>

现在点击我想获得 .prev img 元素 src attr,我这样做:

$(function(){
$('span').bind('click',function(){
 var _img_src = $(this).prev('img').attr('data-modal-img-src');
 alert(_img_src);
});
});

它没有按预期工作,有什么建议吗?

PS:不要使用 -1 就像是 rayining -1

4

2 回答 2

2

要获得 prev 他们应该有共同的父母可以通过body标签div等,而你没有属性'data-modal-img-src'。您应该使用on而不是 bind 因为 bind is deprecated。也使用data()代替attr()数据属性。

prev(),获取匹配元素集中每个元素的前一个兄弟元素,可选地由选择器过滤,jQuery 文档

现场演示

<img class="prev" data-modal-img-src = "123"/>
<span></span>
<img class="next"/>

$(function () {
    $('span').bind('click', function () {
        var _img_src = $(this).prev('img').data('modal-img-src');
        alert(_img_src);
    });
});

使用data()

现场演示

$(function () {
    $('span').bind('click', function () {
        var _img_src = $(this).prev('img').data('modal-img-src');
        alert(_img_src);
    });
});
于 2013-02-02T09:05:23.987 回答
1

使用data()而不是attr()

$(this).prev('img').data('modal-img-src')
于 2013-02-02T09:06:24.763 回答