getElementsByClassName으로 추출한 요소 배열을 사용하는 스크립트가 Firefox에서 작동합니다. 이 방법은 IE8에서 지원되지 않으므로 querySelectorAll을 대신 사용해야합니다. 내 문제는 querySelectorAll 실제 요소에 라이브 참조가 아닌 정적 목록을 만듭니다.querySelectorAll의 라이브 노드
내 스크립트
function subMenu(sCat,gCat,sh,gh,selection)
{
sElements = document.querySelectorAll('cat'+sCat);
gElements = document.querySelectorAll('cat'+gCat);
// sElements = document.getElementsByClassName('cat'+sCat);
// gElements = document.getElementsByClassName('cat'+gCat);
if(sh>0)
{
for(i=0;i<sElements.length;i++)
{
if(!(h = window.getComputedStyle(sElements[i],null).height)) {h=sElements[i].currentStyle;}
nh = parseInt(h.replace("px",""))-4;
sElements[i].style.height = nh+"px";
}
sh=sh-4;
}
if(gh<100)
{
for(i=0;i<gElements.length;i++)
{
if(!(h = window.getComputedStyle(gElements[i],null).height)) {h=gElements[i].currentStyle;}
nh = parseInt(h.replace("px",""))+4;
gElements[i].style.height = nh+"px";
}
gh=gh+4;
}
if(sh>0 || gh<100) {xMenu=setTimeout("subMenu("+sCat+","+gCat+","+sh+","+gh+",'"+selection+"')",10);}
else
{
fadeOut(selection);
}
}
난 괜찮아하지만 IE8에서 작동하는 스크립트를 주석있다. getComputedStyle 또는 currentStyle 속성이 작동하는지 여부는 모르겠지만 style.height 속성을 defintiely로 설정하는 것은 아닙니다.
그래서 내 질문 :
는 getElementsByClassName 유사 IE8에서 라이브 노드 목록을 얻을 수있는 방법이 있나요?
누군가가 querySelectorAll에서 배열을 요소 객체의 배열로 변환하는 방법을 제안 할 수 있습니까?
하지만 배열 트릭은 IE8에서 작동하지 않습니다
실제 배열로 변환하려면 클래스는 CSS처럼, 점으로 시작합니다. – rvighne
감사합니다. QuerySelector 문제가 해결되었습니다. 그 이상의 문제가 여전히 있지만 그게 내 문제 였어. 추측 '정적'은 요소 목록이 아니라 속성 목록을 참조합니다. – illusivetech