javascript – 在jquery对象的集合上使用underscore.js列表函数

我正在使用一个同时使用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")

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...