Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 如何在页面上仅搜索具有特定类名的div_Javascript_Jquery - Fatal编程技术网

Javascript 如何在页面上仅搜索具有特定类名的div

Javascript 如何在页面上仅搜索具有特定类名的div,javascript,jquery,Javascript,Jquery,假设我想搜索具有特定类名的div。如果这些div没有特定id,我想向它们添加一个类。前 <div id ="1" class="head"></div> <div id ="2" class="head"></div> <div id ="3" class="head"></div> if(div.id != "1") { add class to all divs not = 1 } 如果(分区id!=“

假设我想搜索具有特定类名的div。如果这些div没有特定id,我想向它们添加一个类。前

<div id ="1" class="head"></div>
<div id ="2" class="head"></div>
<div id ="3" class="head"></div>

  if(div.id != "1")
 {
  add class to all divs not = 1
 }

如果(分区id!=“1”)
{
将类添加到所有div,而不是=1
}
这将如何工作谢谢你

jQuery 您可以使用此代码来执行此操作

$('div.head:not(#1)').addClass('some-class');

要获得更好的性能,请使用

$('div.head').not('#1').addClass('some-class');


没有jQuery 对于现代浏览器

[].slice.call(document.querySelectorAll('div.head')).filter(function(element) {
    return element.id != 1;
}).forEach(function(element) {
    element.classList.add('some-class');
});

您可以删除
过滤器()
并使用
:not()
,如

为了我们可爱的老朋友

var divs = document.getElementsByTagName('div'),
    divsLength = divs.length;

for (var i = 0; i < divsLength; i++) {
    if (divs[i].id != '1' && ~divs[i].className.search(/\bhead\b/)) {
        divs[i].className += ' some-class';    
    }
}
var divs=document.getElementsByTagName('div'),
divsLength=divs.length;
对于(变量i=0;i

根据您需要支持的程度,如果其他元素可能包含相同的类名,并且您必须以独占方式使用
div
元素,只要您知道需要过滤
div
元素,就可以始终使用


此外,根据.

var result=document.querySelectorAll('div.head:not(#validID'))的规定,
id
属性不能以数字开头; 对于(变量i=0;i

。这不需要jQuery。如果您喜欢jQuery,请参阅。

!另外,在“不要将数字用于id”中,not似乎不起作用,只是为了明确not是用于id的,对吗?我正在尝试匹配一个类并添加一个新类,其中id!=这个奇怪的符号有什么作用?@AJAX3333221它将
数字中的位反转。我的答案也不需要jQuery:P+1我忘了
:not()
可以与
querySelectorAll()
一起使用。。。。但它确实需要浏览器支持,我相信早于9的IE版本不会处理这个问题。@alex:是的,在编辑之后:P。您最初的答案只包括jQuery版本;)。但是nvm,我不知道[].slice技巧,这是一个很酷的技巧。@Zeta我首先回答jQuery,因为这个问题带有标签。然后,为了完整性,我也喜欢在没有jQuery的情况下回答:)@alex:这就是我提供纯JS版本的原因,这个问题也是关于“javascript”:D。尽管我忘记了对旧浏览器的支持——同样:/。
$('div.head[id!="1"]').addClass('myClass');