检查选择器是否不是

时间:2013-12-14 11:23:26

标签: javascript jquery arrays selector

我有一个关于jQuery选择器的noob问题。我想在点击后包装一个元素,但前提是它有一个特定的类名(“。js-loader”),并且只有它是输入[type“submit”]或输入[type =“button”] ],或者如果它有一个类名“.form-b​​utton”......

var selector = '.js-loader';

$(selector).on('click', function() {
    if( $(this).is(???) ) {
        console.log('Its a submit button or something like that, so its ok.');
    }

    else {
        console.log('You shall not pass.')
    }
});

问题是,我是javascript和jQuery的真正新手,我只是不知道如何正确地做到这一点。

感谢您的帮助,对不起我的英语:)

修改: 我想把那些选择器放在另一个变量中,稍后我会需要它们。

http://jsfiddle.net/fMUc9/

5 个答案:

答案 0 :(得分:2)

is()函数传递要针对其

测试元素的选择器
$(selector).on('click', function() {
    if( $(this).is('input[type="submit"], input[type="button"]') ) {
        console.log('Its a submit button or something like that, so its ok.');
    }
    else {
        console.log('You shall not pass.')
    }
});

答案 1 :(得分:0)

试试这个:

$(selector).on('click', function() {
if( $(this).is('input[type="submit"], input[type="button"], a, .form-button') ) {
    console.log('Its a submit button or something like that, so its ok.');
}

else {
    console.log('You shall not pass.')
}
});

答案 2 :(得分:0)

试试这个:

$(selector).on('click', function() {
    if( $(this).is('input :submit, input :button, a.form-button') ) {
        console.log('Its a submit button or something like that, so its ok.');
    }

    else {
        console.log('You shall not pass.');
    }
});

答案 3 :(得分:0)

试试这个:

var selector = '.js-loader';

$(selector).on('click', function() {
   if( $(this).is('input[type"submit"], input[type="button"],.form-button') ) {
        console.log('Its a submit button or something like that, so its ok.');
    }

    else {
        console.log('You shall not pass.')
    }
});

答案 4 :(得分:0)

试试这个:

$(selector).click(function() {
    if( $(this).is("input[type=button], input[type=button], a") || $(this).className == 'form-button' ) {
        console.log('Its a submit button or something like that, so its ok.');
    }

    else {
        console.log('You shall not pass.')
    }
});