Javascript 如何在页面上仅搜索具有特定类名的div
假设我想搜索具有特定类名的div。如果这些div没有特定id,我想向它们添加一个类。前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 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');