2013-11-02 1 views
0

텍스트 상자의 행을 여러 행으로 분할하는 간단한 javascript 기능이 있습니다. 기능은 다음과 같습니다 :Internet Explorer 9.0에서 innerHTML이 작동하지 않는 설정

function newline(componentID) 
{ 

    var cols = document.getElementById(componentId).getElementsByTagName('td'); 
    var colslen = cols.length; 
    var i = -1; 
    var tempInnerHTML = '<tbody><tr>'; 

    while (++i < colslen) 
    { 
     tempInnerHTML += '<td>' + cols[i].innerHTML + '</td>' 
     if (i == 9 || i == 19 || i==29) { tempInnerHTML += '</tr><tr>'; } 
    } 
    tempInnerHTML += '</tr></tbody>'; 
    document.getElementById(componentId).InnerHTML = tempInnerHTML; 

} 

기능은 파이어 폭스에서 잘 작동하지만 IE 9.0 document.getElementById(componentId).InnerHTML = tempInnerHTML; 우리가 직접 IE 9.0에서 innerHTML을 설정할 수 없습니다 즉

그래서 난 시도 인 이유에서 작동하지 않습니다 statem되는 문제

function newline(componentID) 
{ 

    var cols = document.getElementById(componentId).getElementsByTagName('td'); 
    var colslen = cols.length; 
    var i = -1; 
    var tempInnerHTML = '<tbody><tr>'; 

    while (++i < colslen) 
    { 
     tempInnerHTML += '<td>' + cols[i].innerHTML + '</td>' 
     if (i == 9 || i == 19 || i==29) { tempInnerHTML += '</tr><tr>'; } 
    } 
    tempInnerHTML += '</tr></tbody>'; 
    var div = document.createElement("div"); 
    div.innerHTML = tempinnerHTML; 
    document.getElementById(componentId).appendChild(div.firstChild.tBodies[0]); 

} 

그러나, 상기 기능은 파이어 폭스 작동하지 않을뿐만 아니라 IE 9.0 : 위의 함수를 변경 엔

document.getElementById(componentId).appendChild(div.firstChild.tBodies[0]); 

IE 9.0뿐만 아니라 FireFox에서 작동하는 기능을 필요로합니다.

도움을 주시면 감사하겠습니다.

미리 감사드립니다.

+0

'componentID'는'table' 요소의 id입니까? –

+0

예! componentID는 테이블 요소의 ID입니다. – user2760677

답변

3

브라우저에서 작동하지 않습니다.

변경

document.getElementById(componentId).InnerHTML = tempInnerHTML; 

document.getElementById(componentId).innerHTML = tempInnerHTML; 

에 자바 스크립트는 대소 문자를 구분합니다.


당신의 편집을 다음과 같습니다

tempInnerHTML += '</tr></tbody>'; 
var div = document.createElement("div"); 
div.innerHTML = tempinnerHTML; 

당신은 사업부에 TBODY을 추가 할 수 있습니다 : 당신은 다른 오류가 있습니다. 일부 브라우저는 표를 삽입하여 문제를 해결하려고 할 수는 있지만 지정된 동작은 아닙니다. table 요소를 만들고 (firstChild 단계는 건너 뜁니다.) 그리고 어쨌든이 div 나 테이블을 사용하지 않아야합니다. 쓸모없는 단계입니다. tbody를 직접 만들고 추가하십시오.

+0

안녕하세요. 이건 오타 였어. 내 코드를 확인 했어. 나는 적절한 문장으로 진술을했지만 아직 작동하지 않는다. 또한 오류는 아래 명령문에 있습니다. document.getElementById (componentId) .appendChild (div.firstChild.tBodies [0]); – user2760677

관련 문제