2016-06-12 120 views
0

我有这个输入:使用Javascript - “不是一个功能”参数添加到功能

<input type="checkbox" id="test_checkbox" onchange="fffunction(this)" /> Something 

经过检查/取消选中该复选框被称为fffunction功能:

function fffunction(checked_value) { 
    if(checked_value.is(":checked")){ 
    console.log("checked"); 
    } else {    
    console.log("not checked"); 
    } 
} 

这返回错误checked_value.is is not a function。如何检查传递的属性是否是一个函数?如何使用参数?

如果我这样做:

function fffunction(checked_value) { 
     if($('#test_checkbox').is(":checked")){ 
     console.log("checked"); 
     } else {    
     console.log("not checked"); 
     } 
    } 

一切的工作......如何使用参数寿的,而不是调用函数内部直接ID HTML元素?

预先感谢您。

回答

2

您试图在原始DOM元素上使用jQuery函数。要做到这一点,你必须把它包在一个jQuery实例第一:

function fffunction(checked_value) { 
    if($(checked_value).is(":checked")){ 
// ^^-------------^---------------------- note 
    console.log("checked"); 
    } else {    
    console.log("not checked"); 
    } 
} 

这是直接包裹元素,而不是由ID去。


当然,我们没有理由在这种特殊情况下使用jQuery,只是使用元素的本地checked属性:

function fffunction(checked_value) { 
    if(checked_value.checked){ 
    console.log("checked"); 
    } else {    
    console.log("not checked"); 
    } 
}