我正在使用一个同时使用jQuery和underscore.js的应用程序.我希望能够在jQuery对象的集合中使用一些下划线的迭代器函数,例如any()和all().有没有办法做到这一点?我想做类似以下的事情:
checkBoxes = $("input[type=checkBox]"); _.filter(checkBoxes,function(Box) { return Box.is(":checked"); });
但这会引发错误:
Uncaught TypeError: Object #<HTMLInputElement> has no method 'is'
所以我假设在这种情况下框不像jQuery对象.
解决方法
你必须在jQuery中包装盒子:
checkBoxes = $("input[type=checkBox]"); checkBoxes = _.filter(checkBoxes,function(Box) { return $(Box).is(":checked"); });
此外,您可以只使用本机Box.checked,而不是为集合中的每个元素创建一个新对象:
checkBoxes = $("input[type=checkBox]"); checkBoxes = _.filter(checkBoxes,function(Box) { return Box.checked; });
旁注:jQuery has its own filter method:
checkBoxes = $("input[type=checkBox]").filter(function() { return $(this).is(":checked"); });
此外,在您的示例中 – 您确定必须过滤吗?您可以像使用选择器一样轻松地使用它:
checkBoxes = $("input[type=checkBox]:checked")
原文地址:https://www.jb51.cc/jquery/154299.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。