Javascript getElementsByTagName排除元素(筛选器)
我有一个JavaScript选择器,如下所示: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
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);