2010-03-06 97 views
1

我有動態創建的圖像(JavaScript)的問題。 我想換一個表格單元格的innerHTML屬性:動態創建的圖像的問題

var x=document.getElementById('myTable').rows; 
    var y=x[0].cells; 

    var myImg = document.createElement('img'); 
    myImg .setAttribute("alt",""); 
    myImg .setAttribute("style","vertical-align: middle; visibility:visible"); 
    myImg .setAttribute("src", "http://valid_link/ajax-loader.gif"); 

    y[0].innerHTML = myImg ; 

但是,作爲結果我看到「[對象HTMLImageElement]」。如何顯示該圖片?

+0

順便說一句,你也應該避免在HTML文檔'setAttribute',因爲它沒有在IE瀏覽器的許多屬性的工作權利。例如,上面的'style'不起作用。只需使用DOM級別1的HTML屬性,如'myImg.alt ='';'和'myImg.style.verticalAlign ='middle';' - 它更可靠,更好閱讀。 – bobince

回答

3

myImg是一個對象,不是HTML字符串。如果你嘗試y[0].appendChild(myImg)而不是?

+0

啊,我的壞,是的,這是錯誤修復。我今天應該停止編碼。謝謝 ! – Tony

0

innerHTML允許您設置節點的HTML內容。但是,您正在使用元素對象而不是包含HTML的字符串來設置它。該對象被轉換爲字符串,這就是爲什麼您看到[object HTMLImageElement]而不是圖像。

要將元素對象添加到頁面中,您可以使用appendChild。下面的示例清除的單元格,然後追加圖像元素:

y[0].innerHTML = ''; 
y[0].appendChild(myImg);