Jquery数学加法

Cla*_*ith 6 math jquery

我正在尝试通过jquery事件添加,我正在获取NaN.我错过了什么?

   <input type="hidden" id="skillcount" name="skillcount" value="3" onchange="valueadd(this)"/>

   function valueadd(ok){
var value=parseFloat($(this).val())+1;
}
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 6

代码应该是:

function valueadd(ok){
  // "this" inside here refers to the window
  var value=parseFloat(ok.value)+1;
} 
Run Code Online (Sandbox Code Playgroud)

内联onchange实际上是一个匿名函数:

function() {
   //"this" inside here refers to the element
   valueadd(this);
}
Run Code Online (Sandbox Code Playgroud)

所以"this"是一个在valueadd范围内被称为"ok"的参数.正如其他人所说,你可能想要使用jquery的绑定,因此valueadd中的"this"将指向该元素.


ale*_*lex 5

this 是JavaScript中的保留字,因此您不能在函数参数签名中使用它.

我可能会将代码更改为......

$('#skillcount').change(function() {
    var value = parseFloat($(this).val()) + 1;
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle.

...并删除内联事件处理程序.

要检查是否parseFloat()返回NaN,请使用isNaN().