Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getElementsByTagName排除元素(筛选器)_Javascript - Fatal编程技术网

Javascript getElementsByTagName排除元素(筛选器)

Javascript getElementsByTagName排除元素(筛选器),javascript,Javascript,我有一个JavaScript选择器,如下所示: var inputs = document.getElementsByTagName("input"); 这非常有效,只是我想过滤掉一些输入(类为“exists”的输入) 没有jQuery我怎么做?这就是您需要的: var inputs = document.getElementsByTagName("input"); var neededElements = []; for (var i = 0, length = inpu

我有一个JavaScript选择器,如下所示:

var inputs = document.getElementsByTagName("input");
这非常有效,只是我想过滤掉一些输入(类为“exists”的输入)

没有jQuery我怎么做?

这就是您需要的:

var inputs = document.getElementsByTagName("input");
var neededElements = [];
for (var i = 0, length = inputs.length; i < length; i++) {
    if (inputs[i].className.indexOf('exists') >= 0) {
        neededElements.push(inputs[i]);
    }
}

迭代元素并将要保留的元素放入数组中。如果在您的代码应该运行的浏览器中可用,我宁愿使用它。@felix kling我想要这样的东西:var inputs=document.getElementsByTagName(“input:not('.existence'));我也需要在旧浏览器上使用这段代码。是的,那不行。这就是为什么我说你必须迭代元素,测试每个元素是否有那个类,如果没有,保留它(放在另一个数组中)。@Florescu,支持CSS选择器,支持旧浏览器,不要使用jQuery。选择任意两个。@FrédéricHamidi:)我不使用常规JavaScript,这就是我问这个问题的原因。jQuery是简单的$('inputs')。不是('.exists'),它会给我数组,但是这个脚本是由其他人完成的,我需要找到一个解决方案…使用数组对象的filter函数可以使它稍微短一点:例如:
let neededElements=[].filter.call(document.getElementsByTagName('input')),el=>el.className.indexOf('exists')>=0)
let neededElements = [].filter.call(document.getElementsByTagName('input'), el => el.className.indexOf('exists') >= 0);