>웹 프론트엔드 >JS 튜토리얼 >Firefox의 msn_Navigation 메뉴 탭 기능에 있는 childNodes 처리에 대한 버그

Firefox의 msn_Navigation 메뉴 탭 기능에 있는 childNodes 처리에 대한 버그

WBOY
WBOY원래의
2016-05-16 19:06:351060검색

Firefox의 childNodes 처리에 대한 버그
childNodesFirefox는 childNodes를 처리할 때 줄바꿈과 공백을 필터링하지 않습니다. 따라서 처음 사용시에는 기대했던 효과가 나오지 않습니다.
HTML

코드 복사 코드는 다음과 같습니다.



JS
코드 복사 코드는 다음과 같습니다.

function tab(btn)
{
var idname = new String(btn.id)
var s = idname.indexOf("_" );
var e = idname.lastIndexOf("_") 1;
var tabName = idname.substr(0, s); substr(e, 1)) ;
var tabNumber = btn.parentNode.childNodes.length; //IE와 FF의 값이 다릅니다.
for(i=0;i {
if(document.getElementById (tabName "_div_" i)!=null) //여기서 판단해야 합니다
{
document.getElementById(tabName "_div_" i). style.display = "none";
document.getElementById( tabName "_btn_" i).style.BackgroundImage = "url(pic/t-1-2.gif)"
document.getElementById(tabName " _btn_" i).style.borderBottomColor = "#D7F2DA";
       document.getElementById(tabName "_btn_" i).style.cursor = "포인터"
                        ~ ;
btn.style.BackgroundColor = "#fff";
btn.style.borderBottomColor = "#fff";
btn.style.cursor = "default";
}


childNodes의 값입니다. IE에서는 menuList의 길이가 5이고 Firefox에서는 값이 11입니다. 따라서 childNodes 객체를 사용할 때는 먼저 이를 판단하거나 공백을 제거해야 합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.