[英]Switch Statement and jQuery hasClass function
我正在嘗試使用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個不同的類名。
我認為這不是開關的用例,而是一組簡單的分支
var body = $('body');
if(body.hasClass('abc')) {
}
else if(body.hasClass('def')) {
}
else {
/* default case */
}
/* etc */
我同意另一個答案,即您更適合僅在此處使用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");
}
}
我知道這是一個舊線程,但它可能會對其他人有所幫助。
如果您可以確保以特定順序聲明元素的類,則可以確保要檢查的類在列表中排在第一位/最后一位,並使用類似以下內容的方法:
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.