找到一个更好的方法 - jquery

时间:2013-10-09 14:17:46

标签: jquery class jquery-selectors

我知道我的选择器将有一个level-1,level-2,level-3

的类

我想基于此设置关卡,但我的方式感觉有点笨重?有没有更简洁的方法来做到这一点

if ( $level.hasClass('level-2')) {
    $levelValue= "level2";
}
if( $level.hasClass('level-3')) {
    $levelValue = "level3";
}

if ( $level.hasClass('level-4')) {
    $levelValue= "level4";
}

编辑:抱歉我的错误

3 个答案:

答案 0 :(得分:2)

使用此:

if($level.is('.level-2, .level-3, .level-4')){
    $level = "level2";
}

这使用jQuery的.is()函数,并检查$level是否包含任何类。

更新:尝试使用此功能:

if($level.is('[class^="level"]')){
    $levelValue = $level.attr('class').match(/level-[0-9]*/); // e.g. 'level-2'
}

这里有效:http://jsfiddle.net/rE3bL/1/

答案 1 :(得分:0)

是否有与每个级别相关联的样式规则?如果它只是数据,我会使用像data-level='2'这样的数据属性,那么你可以使用这个jQuery函数来访问它:$level.data('level')

答案 2 :(得分:0)

什么是$ level?一个div? 如果你想将$ level设置为“level1”,“level2”和“level3”(每次都像代码中那样“level2”),你可以使用数据attr:

<div class="level1" data-level="1">
<div class="level2" data-level="2">
<div class="level3" data-level="3">

你的js就像:

$level = $level.data("level") //will return "1","2" or "3"