我正在尝试通过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)
代码应该是:
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"将指向该元素.
this 是JavaScript中的保留字,因此您不能在函数参数签名中使用它.
我可能会将代码更改为......
$('#skillcount').change(function() {
var value = parseFloat($(this).val()) + 1;
});
Run Code Online (Sandbox Code Playgroud)
...并删除内联事件处理程序.
要检查是否parseFloat()返回NaN,请使用isNaN().
| 归档时间: |
|
| 查看次数: |
28835 次 |
| 最近记录: |