【发布时间】:2013-04-29 02:53:18
【问题描述】:
正在寻找“等效于 javascript 中的某些方法”和“如果在数组中则只返回一个值”,但只看到了确定变量类型或太多不必要的方法的答案。
我绕过了 html 中的所有输入,我想要这样的东西:
$('#goodsFilter')
.find('input[type="number"]')
.some(function(i,el){
return (isNumber($(el).val())) ? 1 : 0;
});
但它会抛出一个错误:
“TypeError: 'undefined' is not a function”(例如 Safari 6.0.4)。
UPD:错误来自最后一行,是的,});。
isNumber:
function isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
这应该检查每个输入信息是否存在,如果其中至少一个不为空,则返回 1,否则返回 0。 如何替换它以在大多数现代浏览器中工作?
统一更新:
问题解决了。我在选择答案时有点困惑。 @RobG 实现 .some() 的代码对于初学者(我也是)更容易理解,所以我换了票。
【问题讨论】:
-
$(el).val()比el.value更有效。isNumber函数有什么作用?您可能会使用return !isNaN(el.value); -
那么,
.some()是什么?为了完整起见 -
@Alexander——我猜它要么是内置的
Array.prototype.some要么是本机仿真。 -
@RobG,好吧,如果它是内置的,那就错了,因为他在 jQuery 方法之后链接它 - 这太天真了
-
@RobG,感谢
el.value是的,这个函数是这样做的:function isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
标签: javascript equivalent