如何通过javascript获取字段的类?
问题描述:
我想执行的,如果条件为根据类如何通过javascript获取字段的类?
var follow = document.getElementById('follow');
if(the class of the variable follow is active){
do this...
}
else{
do this...
}
我怎样才能做到这一点在JavaScript?
答
什么
if(follow.className == "active")
答
使用follow.className
,因为class
明显保留。
答
您可以使用元素的className
属性。
if(follow.className == 'active') {
// do something
}
else {
// do something else
}
但是请注意,一个元素如<div class="active right">
不会与该代码工作,因为类名会返回“主动权”。换句话说,它将与具有只有'主动'类的元素一起工作,但不是所有具有'主动'类的元素。
你可以,而是使用正则表达式匹配像这样,以检测有活动类元素(和潜在的其他人):记住
if(follow.className.match(/.*active.*/)) {
// do something
}
else {
// do something else
}
答
轴承,不止一个类可以用于指定相同的元素:
<p class="active bright wavy">
你可以这样做:
if (/(^|)active(|$)/.test(follow.className)) {
// do something
}
的道具使用JavaScript检查课程是.className
,因为class
是保留字。 (留作将来使用:它不会在此刻做任何事情。)
或者,如果你打算做了很多,你可以定义一个函数:
function elementHasClass(el, cl) {
return (new RegExp("(^|)" + cl + "(|$)")).test(el.className);
}
if (elementHasClass(follow, "active")) { ... }
答
使用这个命令你这种类型的检查更加频繁:
Element.prototype.hasClass = function(classToCheck){
if(this.className == classToCheck)
return true;
else if(this.className.indexOf(classToCheck + ' ') ==0)
return true
else if(this.className.indexOf(' ' + classToCheck) == (classToCheck.length - 1))
return true
else if (this.className.indexOf(' ' + classToCheck + ' ') >= 0)
return true;
return false
}
与
if(document.getElementById('myId').hasClass('classIWantToCheck')){
//do the stuff
}else{
// do other stuff :(
}
叫什么你应该使用'。测试()'而不是'.match()'如果你只关心AY es-it-match/no-it-没有结果。另外,你的正则表达式不会匹配'
'? “”匹配任何字符... – nnnnnn