2011-12-04 138 views
2

如果我有我的網頁上這個網站更換IMG SRC從元素屬性

<img src="samesrc" class="commentimg" name="differentimg1"/> 

怎樣的onclick可以切換的<img>src=name=屬性,所以當我點擊<img>的SRC成爲differentimg1 ,並且點擊時,再次html源代碼返回到原來的即

另一個類應用

<img src="differentimg1" class="commentimg commentimgresize" name="differentimg1"/> 

,然後

<img src="samesrc" class="commentimg" name="differentimg1"/> 

這應該適用於所有圖像,但切換時的src應該對應元素name=的值。

我已經試過http://jsfiddle.net/yusaf/zy5j8/25/

$('.imgreplace').each(function(){ 
$('.imgreplace').click(function(){ 
    var replacesrc = $(".commentimg").attr("name"); 
    $('.commentimg').attr("src", "+replacesrc+"); 
    $('.commentimg').toggleClass('commentimgresize') 
}) 
}); 

回答

2

這工作

$('.commentimg').click(function(){ 
    var a = $(this).attr('src'); 
    var b = $(this).attr('name'); 
    $(this).attr('src',b).attr('name', a); 
}); 

實施例:http://jsfiddle.net/jasongennaro/zy5j8/26/

說明:Onclicksrcname屬性,反向它們。

+0

這太棒了,只是錯過了一件事,但我明白了,http://jsfiddle.net/yusaf/zy5j8/31/,非常感謝。 –

+0

很高興爲你效勞,@Yusaf! –

+1

@Yusaf - 這確實比我的回答更好 - 它會覆蓋name屬性,但這並不重要。名稱對img沒有任何作用,實際上這個標籤(和其他)已被**棄用**。將來,如果您需要佔位符屬性,則可以使用html5數據屬性 - data-swapsrc ='...'它也是跨瀏覽器安全的 –

2

於是就點擊,使SRC =名稱,除非他們是平等的,在這種情況下,設置SRC回到它最初。這個技巧會記住原始的src是什麼;數據功能 - 可讓您通過按鍵在元素上存儲任意數據 - 可以幫助您做到這一點。

$(".imgreplace").click(function() { 
    if (this.attr("src") !== this.attr("name")) { 
     this.data("oldsrc", this.attr("src")); 
     this.attr("src", this.attr("name")); 
    } else 
     this.attr("src", this.data("oldsrc")); 
    this.toggleClass('commentimgresize'); 
}); 
1

你不能添加這樣一個變量,嘗試:

var replacesrc = $(".commentimg").attr("name"); 
$('.commentimg').attr("src", replacesrc); 

而且,使用URL作爲名字大概is'nt最好的想法。

2
$('.commentimg').click(function(){ 
    var replacesrc = $(this).attr("name"); 
    $(this).attr("src", replacesrc).toggleClass('commentimgresize'); 
}); 
0

對網址使用name是錯誤的(Google對此會感到困惑)。

相反,嘗試使用data-屬性,像這樣:

<img 
    src="url1" 
    class="commentimg" 
    data-src2="url2"/> 

$('.commentimg').click(function(){ 
    var temp_src = $(this).attr('data-src2'); 
    $(this) 
     .attr('data-src2', $(this).attr('src')) 
     .attr('src', temp_src) 
     .toggleClass('commentimgresize'); 
}); 

看到它的工作here