jQuery:点击添加类并设置变量

时间:2013-06-23 20:45:09

标签: jquery if-statement

这个想法是将链接的类更改为活动,同时从其他链接中删除活动,并根据单击的链接将变量设置为值。如果单击“1”,则变量firstNumber将为1.这是稍后的“验证”类型。代码在下面,如果“if else if ...”部分被删除,则类更改有效,因此该部分必须出错,那是什么?

$(document).ready(function (){
    $('.numbers-1 a').click(function(){
        $('.numbers-1 a').removeClass('active');
        $(this).addClass('active');

        if ( $(this).hasClass('num-1') ) {
            var firstNumber = 1;
        } else if ( $(this).hasClass('num-2') ) {
            var firstNumber = 2;
        } else if ( $(this).hasClass('num-3') ) {
            var firstNumber = 3;
        } else ( $(this).hasClass('num-4') ) {
            var firstNumber = 4;
        };
    });
});

html在这里

<div class="numbers-1">
    <a class="num-1" href="#">1</a>
    <a class="num-2" href="#">2</a>
    <a class="num-3" href="#">3</a>
    <a class="num-4" href="#">4</a>
</div>

那么,为什么if语句在jquery中不起作用?

2 个答案:

答案 0 :(得分:2)

else应该是你最后声明中的else if我假设else不接受条件声明。

else if ( $(this).hasClass('num-4') ) {
   var firstNumber = 4;
}

jsFiddle here.

答案 1 :(得分:0)

试图简化您的代码。那怎么样?

$(document).ready(function (){
    $('.numbers-1 a').click(function(){
        $('.numbers-1 a').removeClass('active');

        var currentClass = $(this).attr('class');

        $(this).addClass('active');

        var firstNumber = parseInt(currentClass.split('-')[1]);
    });
});