Number.prototype.function无法处理jQuery(.).val()的结果
Number.prototype.function not working on result of jQuery(..).val()
我从另一篇文章中获得了这段代码。
Number.prototype.countDecimals = function () {
if(Math.floor(this.valueOf()) === this.valueOf()) return 0;
return this.toString().split(".")[1].length || 0;
}
var x = 23.453453453;
x.countDecimals(); //returns 9 as expected
基本上,它返回给定数字中的小数位数。问题是,我需要从输入中的一个数字中获得这个值:
console.log($('#myinput').val().countDecimals());
但该操作返回:未捕获类型错误:未定义不是函数
如何集成以前的代码来处理输入值(使用jQuery)?谢谢
您在Number
对象的原型中定义了countDecimals
函数,因此它只能在类型为Number
的对象上调用。我还没有对此进行测试,但您可以使用Number($('#myinput').val()).countDecimals()
。
.val()
实际上返回了一个对象:Object [value]
。只需在上面执行parseFloat
即可:
console.log( parseFloat( $('#myinput').val() ).countDecimals() );
它将给出所需的结果,
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<input type ="text" id="inpVal">
<input type ="button" id="inpBtn" value="click!!!!">
<script>
Number.prototype.countDecimals = function () {
if(Math.floor(this.valueOf()) === this.valueOf()) return 0;
return this.toString().split(".")[1].length || 0;
}
$("#inpBtn").click(function(){
var x = parseFloat($("#inpVal").val()).countDecimals();
alert(x);
});
</script>
</body>
</html>
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何在salesforce aura闪电组件中使用jQuery.val()
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 如何防止在使用.val()时引入XSS漏洞
- Number.prototype.function无法处理jQuery(.).val()的结果
- jQuery的val日期结果为空字符串的一些日期
- $(“#id”).val();显示不正确的结果
- 比较select.val()和span.text()后产生错误结果