2012-11-01 3 views
0

안녕하세요 제가 자바 스크립트 루프 (가) 잘 작동IE9 자바 스크립트 생성 된 테이블

var TABLE = widget.body.getElementsByClassName('classroom')[0]; 
    var TBODY = widget.createElement('tbody'); 

     //generate rows & Cells, 10 x 10 
     var cID = 0; 
     for (var r=0; r<10; r++) { 
      var TR = widget.createElement('tr'); 
       for (var c=0; c<10; c++) { 
        var TD = widget.createElement('td'); 
        //TD.id="c"+cID; 
        TD.setAttribute("class",'c'+cID); 
        TD.setAttribute("id",'c'+cID); 
        TD.setAttribute("style","width:90px;"); 
        TD.setAttribute("style","height:90px;"); 
        cID++; 
        TR.appendChild(TD); 
       } 
       TBODY.appendChild(TR); 
     } 
     TABLE.appendChild(TBODY); 

먼저 테이블을 생성에만

IE9

에 문제가

는 다음이 다른 함수를 호출하는 것 테이블을 채우십시오.

이것은 아주 큰 기능입니다. HTML에서

var cell_class = cell.toString(); // it gets the cell from another loop say 'c1' 
var TCell = widget.body.getElementsByClassName(cell_class)[0]; 
TCell.innerHTML="<a href='#'>image</a>"; // it fails at this point 'null or undefined' 

나는 내가 HTML에 고정 테이블을 추가 할 경우 작동

<table id="table1" class="classroom"> 
        <colgroup> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
         <col width="90" height="70"/> 
        </colgroup> 
       </table> 

을 가지고 있지만 나는 그것이 동적합니다.

이것은 당신이 jQuery를 템플릿 또는 핸들을 이용하지 않는지 어떤 특정한 이유 (또는 그 문제에 대해 다른 템플릿 라이브러리가 거기에 사람이

답변

0

을 도울 수 떨어져 IE9

에서 현재의 모든 브라우저에서 작동합니다.) 동적 생성을 돕기 위해?

IE의 문제는 마크 업에서 TBODY 요소를 만들지 않는 한 기본적으로 TBODY 요소를 만들지 않는다고 생각합니다. 나는 그것이 존재하지 않는다면 다른 브라우저가 그 요소를 암시 적으로 생성한다고 생각한다.

마크 업에서 수동으로 tbody 요소를 추가 해보십시오.

+0

저는 tBody를 클래스별로 타겟팅하려고 시도했지만 여전히 동일합니다. "마크 업에 수동으로 tbody 요소 추가"는 어디에 있습니까? – ajl80

+0

사용중인 위젯 클래스 란 무엇입니까? 템플릿 라이브러리를 사용하는 것이 좋습니다. 그것은 당신을 위해 많은 고통을 줄일 수 있습니다. – BuddhiP

+0

기본적으로 Frog이라는 프레임 워크에서 작업하고 있습니다. Javascript 위젯을 빌드 할 수도 있습니다. 위젯을 함수 앞에 놓기 만하면됩니다. 그래서 외부 템플릿을 사용하지 않아 고통이 될 수 있습니다. – ajl80