当没有触发事件侦听器时,将“this”设置为if语句中的选择器

时间:2015-07-14 11:48:11

标签: javascript jquery if-statement this

当没有触发事件侦听器时,我试图通过jquery将“this”设置为if语句中的选择器。目前我必须编写大量代码来实现我的行为,如下所示

function show(){
    if($('input#q1Male').is(":checked")){
            //do something...
    } else {
            //do something else...
    }
    if($('input#q1Female').is(":checked")){
            //repeated do something...
    } else {
            //repeated do something else...
    }
}show();

如果“this”可以在if语句中应用,那么是否会简化并清理javascript。我试着查看.call()和.apply()没有太多运气。

1 个答案:

答案 0 :(得分:0)

您可以在调用函数设置其上下文之前使用jQuery.bind(=' this'),或者如您所说,在调用函数时使用apply / call。

apply / call将接受函数的上下文作为第一个参数,

例如:

show.apply(wantedContext, [arg1, arg2,...]);

或:

show.call(wantedContext, arg1, arg2,...);

在你的情况下,wantContext将是$('输入#q1Male'),所以你的函数将是:

function show(){
    if(this.is(":checked")){
            //do something...
    } else {
            //repeated do something else...
    }
}

然后使用:

调用它
show.call($('input#q1Male')); 

show.call($('input#q1Female'));