我正在尝试使用switch语句来检查当前页面是否具有特定的主体类。这就是我要找的东西:
var bodyClass = $('body').hasClass('className')
switch(bodyClass) {
case 'homepage':
// console.log("This is the homepage");
break;
case 'residential-page':
// console.log("This is the residential page");
break;
default:
// console.log("default code block ran");
}我确实理解jQuery hasClass函数返回true或false,其用法类似于$('body').hasClass('someClassName'),这将返回true或false。另外,对于一个给定的页面,我的主体通常有大约7-10个不同的类名。
发布于 2016-05-27 02:22:40
在我看来,这不是switch的用例,而是一组简单的分支
var body = $('body');
if(body.hasClass('abc')) {
}
else if(body.hasClass('def')) {
}
else {
/* default case */
}
/* etc */发布于 2016-05-27 02:36:18
我同意另一个答案,那就是你更适合在这里使用if,else if语句,但另一种选择是从body标记中取出类,并根据字符串检查它们:
var bodyClasses = ($('body').attr('class') || '').split(' ');
for (var i = 0, len = bodyClasses.length; i < len; i++) {
switch(bodyClasses[i]) {
case 'homepage':
// console.log("This is the homepage");
break;
case 'residential-page':
// console.log("This is the residential page");
break;
default:
// console.log("default code block ran");
}
}发布于 2019-10-03 02:29:43
我知道这是一个老帖子,但它可能对其他人有帮助。
如果您能够确保元素的类以特定的顺序声明,则可以确保您正在检查的类是列表中的第一个/最后一个,并使用类似以下内容:
var bodyClass = $('body').attr('class');
var firstClass = bodyClass.slice(0, bodyClass.indexOf(' '));
switch(firstClass) {
case 'homepage':
// Some code here
break;
case 'residential-page':
// Other code here
break;
default:
// More code here
}https://stackoverflow.com/questions/37468349
复制相似问题