javascript switch语句,如果string包含substring

ntg*_*ner 4 javascript jquery

我试图弄清楚如何做一个switch语句,我需要找到对象的类名,然后根据类名做一些事情(在switch语句中).

在这个例子中,我需要switch语句在类包含特定单词时执行我需要的任何操作,例如"person".

HTML

<div class="person temp something"></div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$(document).on('mousedown', function(e) {
    var clicked = $(e.target).attr('class');
    console.log(clicked);
    switch (clicked) {
        case "person":
            //do something
            break;
        default:    
            //do something  
    }
});
Run Code Online (Sandbox Code Playgroud)

不保证switch语句名称(例如"person")将位于第一个位置.

我知道我可以通过数组搜索特定的单词,但我不知道如何将其添加到这类内容中.

Fel*_*ing 7

正如我在评论中所说,switch在这种情况下,声明似乎不合适.

由于您使用的是jQuery,只需使用.hasClass:

if ($(e.target).hasClass('person')) {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

如果要为多个类执行更复杂的操作,可以创建class -> function映射并简单地遍历类列表:

var classActions = {
    person: function(element) { /* do something */ },
    temp: function(element) { /* do something */},
    // ...
};

var classes = e.target.className.split(/\s+/);
$.each(classes, function(index, cls) {
    classActions[cls](e.target);
});
Run Code Online (Sandbox Code Playgroud)