Javascript - "不是一个功能"用于添加到函数的参数

时间:2016-06-12 07:55:13

标签: javascript jquery

我有这个输入:

<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元素?

提前谢谢。

1 个答案:

答案 0 :(得分: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");
  }
}