Javascript jQuery检查元素是否有类
我试图检查HTML元素是否有类,如果有,则使用jQuery运行函数。我的代码只有在一个元素没有多个类时才有效。我相信我需要使用Javascript jQuery检查元素是否有类,javascript,jquery,Javascript,Jquery,我试图检查HTML元素是否有类,如果有,则使用jQuery运行函数。我的代码只有在一个元素没有多个类时才有效。我相信我需要使用.hasClass()方法,但我想不出来 var pageClass = $("body").attr('class'); switch (pageClass) { case ("page1"): $('h1').html('heading1'); break; case ("page2"): $('h1').html('heading2
.hasClass()
方法,但我想不出来
var pageClass = $("body").attr('class');
switch (pageClass) {
case ("page1"):
$('h1').html('heading1');
break;
case ("page2"):
$('h1').html('heading2');
break;
default:
$('h1').html('default');
}
小提琴:
使用该功能
if($("body").hasClass("page1")){
$("h1").html("heading1");
}
else if($("body").hasClass("page2"){
$("h1").html("heading2");
}
else {
$("h1").html("default");
}
这可以通过选择器解决:
$('h1').html('default');
$('body.page1 h1').html('heading1');
$('body.page2 h1').html('heading2');
我会这样做的
$(document).ready(function() {
var element = $("body");
var classesCollection = {
'page1': 'heading1',
'page2': 'heading2'
};
for (var propertyName in classesCollection) {
var propertyValue = classesCollection[propertyName];
if (element.hasClass(propertyName)) element.html(propertyValue);
else element.html('default');
}
});
使用if-else和hasClass()代替switch语句如果
主体包含所有3个类,您会怎么做?您是只想要第一个,还是最后一个,还是全部附加在一起?唯一的方法是使用if-else语句吗?将if/else与“hasClass”函数一起使用是最简单的方法。在这种情况下,使用switch语句太复杂了。Sonny说的有道理,因为代码示例使用多个类。.hasClass()
方法类似于if(className.indexOf('page1')>-1){…}
。这两种方法在交换机中都不起作用。但是,您可以将唯一id属性与开关一起使用。例如:
或
&然后使用开关($(“body”).attr(“id”){…}
。原因是只有1个值被传递到id为的开关中,而不是类中的多个值。所以最好记住,开关使用单值键&if/else语句使用多个输入键。