switch case语句基于许多类之一

时间:2011-02-17 12:55:48

标签: javascript jquery switch-statement

我正在尝试实现这样的switch case语句:

switch (active.attr('class')){
    case "video": ...

        case "slideshow": ...
...

问题是,“视频”和“幻灯片”每个都是我试图定位的三个类别之一,因此它与案例不符......

我怎么会基本上说“视频是attr('class')的一部分”?

谢谢, 卢茨

4 个答案:

答案 0 :(得分:4)

看起来你正在使用jQuery,它提供了两种方法:

所以你可以打电话:

if( active.hasClass('video') ) { }

if( active.is('.video') ) { }

请注意.is()需要更具体的模式与前导.,但您可以确定许多其他内容,如.is('div')等。

答案 1 :(得分:4)

您也许可以尝试拆分字符串。 从头到尾:

var classes = active.attr('class').split(' ');
foreach(var c in classes) {
    switch(c) {
        case 'video'
        ...
        case 'slideshow'
        ...
    }
}

只是一个想法。以上答案可能会以其他方式做同样的事情:)

编辑:

你也可以像这样使用jQuery .each()

classes.each(function(c) {
    switch(c) {
        case 'video'
        ...
        case 'slideshow'
        ...
    }
}

答案 2 :(得分:2)

您可以使用hasClass

See this related post.我认为它符合您的目标。

答案 3 :(得分:1)

使用if和hasClass方法:

if (active.hasClass('video')) {
}
else if {active.hasClass('slideshow')) {
}

如果您需要同时执行这两项操作(在交换机上使用),请删除else以使if语句独立。