2014-09-03 28 views
0

以下代碼工作正常,但我需要使用以下方法嘗試的最近圖像的attr("src"),但它尚未正常工作。獲取最接近的圖像attr(「src」)jQuery

$(".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:

小提琴:http://jsfiddle.net/e27r8/603/

UPDATE1:如何用平變化,引發

$(".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'); 

回答

2

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

您可以使用.closest()找到一個共同的父母,然後使用find()來獲取目標元素

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

另一種方法是使用的imgbutton父的前一個兄弟的邏輯,所以

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

你可以請看看編輯問題「更新1」 – lock 2014-09-03 13:25:00

+0

@鎖你想要實現什麼 – 2014-09-03 13:28:42

+0

另外,要添加/刪除圖像src到'文本框ID'#getnew'謝謝 – lock 2014-09-03 13:31:10

0

到阿倫的解決方案的另一種可能是:

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