2010-03-06 9 views
1

동적으로 생성 된 이미지 (JavaScript)에 문제가 있습니다. I "는 [오브젝트 HTMLImageElement]"를 참조 결과로서,동적으로 생성 된 이미지의 문제점

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 ; 

:하지만 I는 테이블 셀의 innerHTML 속성을 변경할. 그 그림을 보여주는 방법?

+0

덧붙여, 당신은 또한, HTML 문서에'setAttribute'을하지 않도록해야합니다. 예를 들어 위의 '스타일'은 작동하지 않습니다. myImg.alt = ''와'myImg.style.verticalAlign = 'middle';과 같이 DOM Level 1 HTML 속성을 사용하면 읽기가 더 안정적이고 멋지게됩니다. – bobince

답변

3

myImg은 HTML 문자열이 아닌 개체입니다. 대신 y[0].appendChild(myImg)을 시도하면 어떻게됩니까?

+0

아, 내 잘못, 네, 그건 오류 수정이야. 나는 오늘 코딩을 중단해야한다. 감사 ! – Tony

0

innerHTML을 사용하면 노드의 HTML 컨텐츠를 설정할 수 있습니다. 그러나 HTML이 포함 된 문자열이 아닌 요소 객체로 설정하고 있습니다. 개체가 문자열로 변환되면 이미지 대신 [object HTMLImageElement]이 표시됩니다.

페이지에 요소 개체를 추가하려면 appendChild을 사용하십시오. 다음의 예는 셀을 지우고 다음 이미지 요소 추가 :이 IE의 많은 속성에 대해 잘 작동하지 않는

y[0].innerHTML = ''; 
y[0].appendChild(myImg); 
관련 문제