2013-01-15 18 views
0

我使用JavaScript來構建一個動態的HTML頁面,這裏是我的代碼:更改HTML的當前屬性,從那裏調用該函數

for (var i = 0; i < getImage.length; i++) { 
    $("#a1").append("<img src=\"" + getImage(images[i])+" \"width=\"90\""); 
     } 

getImage函數返回的圖像...我的問題,我如何在每次迭代中使用JavaScriptJquery更改當前行的屬性,例如在我的getImage函數中更改width或該當前行的任何圖像屬性。如果我使用$('this')它會返回該對象,但不會引用該當前行。我可以在該函數內的每個迭代中更改這些東西嗎?這樣的結果,我會得到:

<img src="1.jpg" width="20"> 
<img src="2.jpg" width="90" > 

function getImage(i) { 
// some code 

// WANT TO CHANGE HERE THE IMG ATTRIBUTE OF <img src "" width=""> 
return image ; 
} 

課程的想法是改變更多的屬性...

+0

'$( 「#A1」)附加( 「

+0

是的, ...固定 –

回答

4

如果您希望能夠更改getImage中的圖像屬性,那麼您不應該使用字符串連接來構建圖像標記。

嘗試類似:

for (var i = 0; i < images.length; i++) { 
    $("#a1").append(getImage(images[i])); 
} 

有:

function getImage(input) { 
    var $img = $('<img>').attr({ 
    src: '%your-source%', // maybe from input?! 
    width: 100 
    }); 

    // do other stuff with $img as needed 

    return $img; 
} 
+0

我喜歡這個sulution,它更有意義......只是爲了確保它只是不同的,因爲在這裏你返回$ object,而在其他解決方案中你返回字符串?它的'不一樣的性能和abillty? –

+0

我使用jQuery對象('$ img'),因爲它比字符串更靈活。如果這是你的問題? – Yoshi

+0

是的,我明白它的jQuery對象...但在我的情況下,字符串解決方案也適用,這裏有更多的靈活性嗎?我能用它做些什麼? –

1

你不能這樣做,因爲你擁有它了。據我所知,getImage只是返回一個圖像的URL。它不能修改img標籤的寬度。你可以那樣做:

for (var i = 0; i < getImage.length; i++) { 
    $("#a1").append("<img src=\"" + getImage(images[i]) + " \"width=\"" + images[i].width + "\""); 
} 

假設你images數組包含字段srcwidth

或者你應該讓你的getImage返回整個img標記HTML對象:

for (var i = 0; i < getImage.length; i++) { 
     $("#a1").append(getImage(images[i])); 
    } 
function getImage(index) { 
    // some code 
    return "<img src=\"" + image + " \"width=\"" + width + "\""; 
} 
1

這可能有一些錯誤,但我只是想分享的,你怎麼能這樣以另一種方式的想法。

for (var i = 0; i < getImage.length; i++) { 
     $("#a1").append(getImage(images[i])); 
     } 

    function getImage(i) { 
     var s = // get the src 
     var w = // width based on i 
     return "<img src=\"" + s+ " \"width=\"" + w+ "\"" ; 
    } 
相關問題