2016-06-21 18 views
6

button 클릭에 대해 td을 숨기고 표시하는 하나의 JavaScript 스크립트를 개발 중입니다. HTML 숨겨진 td는 IE6에서 공백을 사용합니다.

나는 내 코드는 모든 최신 morder 브라우저도 latest IE에 노력하고 있습니다 그러나 TD를 숨기 td IE6보다 숨기고있다하지만 일부 공간을 넣어하려고합니다.

내 코드 :

data = getElementsByClassName("data", "td", myElement); 
for (i = 0; i < data.length; i++) { 
    td = data[i];       
    tr = td.parentNode; 
    for (j = 0; j < tr.childNodes.length; j++) {   
     tr.childNodes[j].style.display = "none"; 
    } 
} 

여기에 나는 그것을 지원하지 않습니다 IE6 becusae 내 자신의 getElementsByClassName 방법을 쓰고 나는 IE6 지원합니다. 위의 코드는 IE6 브라우저를 제외한 다른 모든 브라우저에서 작동합니다. 이 같은

IE6에서

내 테이블의 모양을

enter image description here

그리고 다른 브라우저

enter image description here

도움을 주셔서 감사합니다.

tr.childNodes[j].style.visibility = "collapse"; 
tr.childNodes[j].style.display = "none"; 

을 그리고 당신은 또한 디스플레이 속성을 설정하려는 경우는, 해치지 않을 것입니다 :

+0

코드를 피들에 넣을 수 있습니까? – iyyappan

+0

나는 주 코드 블록을 이미 질문에 넣었습니까? 그런데 IE6을 가지고 계신가요? –

+0

'Element.nodeType'을 사용해 보셨습니까? HTML 줄 바꿈도 공백을 만듭니다. – PHPglue

답변

0

을 무너보십시오. 나중에 세포를 활성화하려면


, 당신은 그것을 반대 수 : 여전히 격차가 왜

tr.childNodes[j].style.visibility = "visible"; 
tr.childNodes[j].style.display = "table-cell"; 

이 어떤 이유로 우리가 찾아야한다 작동하지해야 .
IE-Inspector/Dev-Tools (F12)을 사용하여 갭이 어디에서 발생하는지 확인할 수 있습니까?

패딩/여백/테두리 속성이 여기에있는 문제라고 생각할 수 있습니다.
또는 전설의 hasLayout-issue에 문제가 있다고 생각할 수 있습니다.

+0

감사합니다.'tr.childNodes [j] .style.display = "none";'? –

+0

아프지 않을 것입니다. 그러나 연구 목적으로 먼저 이것을 시도해보고 효과가 있는지 알려 주시기 바랍니다 :) –

+0

좋아요, 화면에 다시 표시하고 싶을 때 어떻게해야합니까? –

0

IE6은 텍스트 노드 및 메모 노드를 가져옵니다. 아마도 이것을 시도해야합니다 :

var doc = document; 
function getElementsByClassName(className){ 
    if(doc.getElementsByClassName){ 
    return doc.getElementsByClassName(className); 
    } 
    var r = [], all = doc.getElementsByTagName('*'); 
    for(var i=0,l=all.length; i<l; i++){ 
    var ai = all[i]; 
    if(ai.className === className){ 
     r.push(ai); 
    } 
    } 
    return r; 
} 

var data = getElementsByClassName('data'); 
for(var i=0,l=data.length; i<l; i++){ 
    var kids = data[i].parentNode.childNodes; 
    for(var n=0,q=kids.length; n<q; n++){ 
    var kid = kids[n]; 
    if(kid.nodeType !== 1){ 
     kid.style.display = 'none'; 
    } 
    } 
} 
+0

고마워,하지만 여전히 작동하지 않습니다. 그것은 같은 결과를 낳았습니다. –