获取最近的图像 attr( "src" ) jQuery



以下代码运行良好,但我需要以以下方式尝试的最接近图像的attr("src"),但它还不起作用。

$(".delimg").click(function () {
var $button = $(this);
var myString = $button.closest('.swipe-image').find('img').attr("src");
var avoid ="http://20percents.com/backend/uploads/";
myString = myString.replace(avoid,'');
$("#getnew").val(myString);
});

下面的方法是有效的,但没有最接近的,选择第一个值

$(".delimg").click(function () {
var myString = $('.swipe-image').attr("src");
var avoid ="http://20percents.com/backend/uploads/";
myString = myString.replace(avoid,'');
$("#getnew").val(myString);
});

如何解决最接近的问题?

HTML:

Fiddle:http://jsfiddle.net/e27r8/603/

Update1:如何使用onchange和触发器

$(".delimg").on('change', function () {
var myString = $('.swipe-image').attr("src");
var avoid ="http://20percents.com/backend/uploads/";
myString = myString.replace(avoid,'');
$("#getnew").val(myString).join());
}).trigger('change');

.closest()将找到一个匹配的祖先元素,在您的情况下,img不是button的祖先。

您可以使用.closst()查找一个公共父级,然后使用find()获取目标元素

var myString = $button.closest('.swiper-slide').find('img').attr("src");

另一种方法是使用逻辑,即imgbutton的父级的前一个同级,因此

var myString = $button.parent().prev('img').attr("src");

Arun解决方案的替代方案可以是:

$(".delimg").click(function () {
    var myString = $(this).parent().prev().attr("src");
    var avoid ="http://20percents.com/backend/uploads/";
    myString = myString.replace(avoid,'');
    $("#getnew").val(myString);
});

最新更新