Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 JS getElementsByTagName,具有特定类的除外_Javascript - Fatal编程技术网

Javascript JS getElementsByTagName,具有特定类的除外

Javascript JS getElementsByTagName,具有特定类的除外,javascript,Javascript,我有一个变量: var _inputs = document.getElementsByTagName('input'); 但是我想创建一个新的变量,它将选择所有的输入,除了有一个像“.nothis”这样的特定类的输入 试试这个: var _inputs = document.getElementsByTagName('input'); var filteredInputs = []; var re = new RegExp('\\b' + 'nothis' + '\\b'); // or

我有一个变量:

var _inputs = document.getElementsByTagName('input');
但是我想创建一个新的变量,它将选择所有的输入,除了有一个像“.nothis”这样的特定类的输入

试试这个:

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]);
    }
}
var\u inputs=document.getElementsByTagName('input');
var filteredInputs=[];
var re=new RegExp('\\b'+'nothis'+'\\b');//或任何其他类名
对于(var i=0;i尝试以下方法:

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]);
    }
}
var\u inputs=document.getElementsByTagName('input');
var filteredInputs=[];
var re=new RegExp('\\b'+'nothis'+'\\b');//或任何其他类名

对于(var i=0;i在现代浏览器中,您可以执行以下操作

var inputs = document.querySelectorAll('input:not(.nothis)');

在现代浏览器中,您可以这样做

var inputs = document.querySelectorAll('input:not(.nothis)');
请尝试以下代码:

var _inputs = Array.prototype.filter.call(
                   document.getElementsByTagName("input"),
                   function(obj) { 
                     return obj.className.split(" ").indexOf("nothis")===-1;
                   });
请尝试以下代码:

var _inputs = Array.prototype.filter.call(
                   document.getElementsByTagName("input"),
                   function(obj) { 
                     return obj.className.split(" ").indexOf("nothis")===-1;
                   });

先告诉我…但是如果元素有多个类会发生什么情况呢?对于多个类:
className.indexOf('class')>0
className.indexOf('class')>0
将使用类似“subclass”的字符串给出假阴性。不,你拒绝了我的编辑建议。@kats:我没有拒绝任何建议。这是一个社区编辑的网站。如果你想改进,请告诉我,我会亲自提交(这样就不必经过2次编辑批准)。先告诉我吧…但是如果元素有多个类怎么办?对于多个类:
className.indexOf('class')>0
className.indexOf('class')>0
会给出带有“subclass”之类字符串的假阴性。不,你拒绝了我的编辑建议。@kats:我没有拒绝任何建议。这是一个由社区编辑的网站。如果你想改进它,请告诉我,我会把它放在我自己的网站上(这样它就不必经过2次编辑批准)。这不是所有浏览器都支持的(IE<8,FF<3.5)IE8甚至不支持此特定选择器。它似乎无法识别
:not()
函数。这在所有浏览器中都不受支持(IE<8,FF<3.5)。IE8甚至不支持此特定选择器。它似乎无法识别
:not()
函数。