GSt*_*Sto 6 javascript jquery underscore.js
我正在使用一个同时使用jQuery和underscore.js的应用程序.我希望能够使用一些下划线的迭代器函数,例如any()
和all()
jQuery对象的集合.有没有办法做到这一点?我想做类似以下的事情:
checkboxes = $("input[type=checkbox]");
_.filter(checkboxes, function(box) {
return box.is(":checked");
});
Run Code Online (Sandbox Code Playgroud)
但这会引发错误:
Uncaught TypeError: Object #<HTMLInputElement> has no method 'is'
Run Code Online (Sandbox Code Playgroud)
所以我假设在这种情况下框不像jQuery对象.
Jos*_*ber 13
你必须包装box
在jQuery中:
checkboxes = $("input[type=checkbox]");
checkboxes = _.filter(checkboxes, function(box) {
return $(box).is(":checked");
});
Run Code Online (Sandbox Code Playgroud)
此外,您可以只使用本机,而不是为集合中的每个元素创建一个新对象box.checked
:
checkboxes = $("input[type=checkbox]");
checkboxes = _.filter(checkboxes, function(box) {
return box.checked;
});
Run Code Online (Sandbox Code Playgroud)
旁注: jQuery有自己的过滤方法:
checkboxes = $("input[type=checkbox]").filter(function() {
return $(this).is(":checked");
});
Run Code Online (Sandbox Code Playgroud)
此外,在您的示例中 - 您确定必须过滤吗?您可以像使用选择器一样轻松地使用它:
checkboxes = $("input[type=checkbox]:checked")
Run Code Online (Sandbox Code Playgroud)