我有这个变量:
var _inputs = document.getElementsByTagName('input');
但是我想创建一个新变量来选择所有输入,除了具有特定类的输入,如“.nothis”。
var _newinputs = document.getElementsByTagName('input') && document.getElementsByClass('!nothis');
答案 0 :(得分:6)
答案 1 :(得分:3)
试试这个:
var _inputs = document.getElementsByTagName('input');
var filteredInputs = [];
var re = new RegExp('\\b' + 'nothis' + '\\b'); // or any other class name
for(var i=0; i<_inputs.length;i++) {
if (!re.test(input.className)) { // filter out by class name
filteredInputs.push(_inputs[i]);
}
}
更新:根据katspaugh
的建议,添加正则表达式匹配以消除误报答案 2 :(得分:3)
试试这段代码:
var _inputs = Array.prototype.filter.call(
document.getElementsByTagName("input"),
function(obj) {
return obj.className.split(" ").indexOf("nothis")===-1;
});
答案 3 :(得分:1)
在现代浏览器中,您可以
var inputs = document.querySelectorAll('input:not(.nothis)');