如何做jQuery的hasClass与平原ol ' JavaScript?例如,
<body class="foo thatClass bar">
JavaScript中询问<body>是否有thatClass的方法是什么?
如何做jQuery的hasClass与平原ol ' JavaScript?例如,
<body class="foo thatClass bar">
JavaScript中询问<body>是否有thatClass的方法是什么?
当前回答
存储正在使用的类的属性是className。
所以你可以说:
if (document.body.className.match(/\bmyclass\b/)) {
....
}
如果你想要一个显示jQuery如何做所有事情的位置,我建议:
http://code.jquery.com/jquery-1.5.js
其他回答
好吧,上面所有的答案都很好,但这里有一个简单的小函数。它运行得很好。
function hasClass(el, cn){
var classes = el.classList;
for(var j = 0; j < classes.length; j++){
if(classes[j] == cn){
return true;
}
}
}
/ / 1。使用if来查看这些类: if (document.querySelector(".section-name").classList.contains("section-filter")) { 警报(“网格部分”); / /代码… } < !——2。在.html:——>中添加一个类 <div class="section-name section-filter">
Element.matches ()
而不是jQuery中的$(element).hasClass('example'),你可以在纯JavaScript中使用element.matches('.example'):
if (element.matches('.example')) {
// Element has example class ...
}
查看浏览器兼容性
hasClass功能:
HTMLElement.prototype.hasClass = function(cls) {
var i;
var classes = this.className.split(" ");
for(i = 0; i < classes.length; i++) {
if(classes[i] == cls) {
return true;
}
}
return false;
};
addClass功能:
HTMLElement.prototype.addClass = function(add) {
if (!this.hasClass(add)){
this.className = (this.className + " " + add).trim();
}
};
removeClass功能:
HTMLElement.prototype.removeClass = function(remove) {
var newClassName = "";
var i;
var classes = this.className.replace(/\s{2,}/g, ' ').split(" ");
for(i = 0; i < classes.length; i++) {
if(classes[i] !== remove) {
newClassName += classes[i] + " ";
}
}
this.className = newClassName.trim();
};
if (document.body.className.split(/\s+/).indexOf("thatClass") !== -1) {
// has "thatClass"
}