DOM javascript-将所有元素添加为选中

时间:2015-05-12 06:25:06

标签: javascript dom

我正在使用DOM,当我按下键#34;我"所有元素都应该被选中"选择"。

我不明白为什么我写的那段代码不起作用,请帮助我。

我的想法是在" nodeList"中收集所有没有选择类的元素的列表。一旦我有了这个,我循环遍历nodelist并向每个元素添加类"选择"。最后我想console.log选择了多少个元素。但是,此代码的任何部分都不起作用!我究竟做错了什么?

提前致谢。

if(keyCode === 105) {
        nodeList = document.querySelectorAll("not(.selected)");
        for(i= 0; i< nodeList.length; i++) {
             place = nodeList[i];
             place.classList.add("selected");            
        }
        nodeList = document.querySelectorAll(.selected);
        console.log(nodeList.length);
    } 

2 个答案:

答案 0 :(得分:2)

我认为问题是使用not,它是pseudo selector,你用它作为元素选择器(语法错误)

if (keyCode === 105) {
    nodeList = document.querySelectorAll(":not(.selected)");//it is a pseudo selector
    for (i = 0; i < nodeList.length; i++) {
        place = nodeList[i];
        place.classList.add("selected");
    }
    nodeList = document.querySelectorAll('.selected');//also use string literal here
    console.log(nodeList.length);
}

答案 1 :(得分:1)

not(.selected)应为:not(.selected)