首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自querySelectorAll的活动节点

来自querySelectorAll的活动节点
EN

Stack Overflow用户
提问于 2014-01-24 02:44:08
回答 1查看 862关注 0票数 1

我有一个在Firefox中工作的脚本,它使用用getElementsByClassName提取的元素数组。这个方法在IE8中不受支持,所以我必须替换querySelectorAll。我的问题是querySelectorAll创建了一个静态列表,而不是对实际元素的实时引用。

我的剧本

代码语言:javascript
复制
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属性肯定不起作用。

所以我的问题是:

  1. 是否有一种方法可以从IE8获得类似于getElementsByClassName的活动节点列表?
  2. 有人能建议将数组从querySelectorAll转换为元素对象数组的方法吗?
EN

回答 1

Stack Overflow用户

发布于 2014-01-24 02:47:02

顾名思义,querySelectorAll需要一个选择器。类以点开始,就像CSS中的那样:

代码语言:javascript
复制
sElements = document.querySelectorAll('.cat'+sCat);
                                      -^-

若要将其转换为实际数组,请执行以下操作:

代码语言:javascript
复制
realArray = Array.prototype.slice.call(pseudoArray);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21323466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档