jqueryオブジェクトのコレクションにunderscore.jsリスト関数を使用します
-
26-10-2019 - |
質問
私はjqueryとunderscore.jsの両方を使用するアプリで作業しています。アンダースコアの反復関数のいくつかを使用できるようにしたいと思います。 any()
と all()
jQueryオブジェクトのコレクションを介して。これを行う方法はありますか?次のようなことをしたい:
checkboxes = $("input[type=checkbox]");
_.filter(checkboxes, function(box) {
return box.is(":checked");
});
しかし、これはエラーをスローします:
Uncaught TypeError: Object #<HTMLInputElement> has no method 'is'
したがって、この文脈でボックスはjQueryオブジェクトのように振る舞っていないと仮定しています。
解決
あなたは包む必要があります box
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には独自のフィルターメソッドがあります:
checkboxes = $("input[type=checkbox]").filter(function() {
return $(this).is(":checked");
});
さらに、あなたの例では、フィルタリングする必要がありますか?それをセレクターと同じくらい簡単に使用できます。
checkboxes = $("input[type=checkbox]:checked")
他のヒント
ここ box
aです HTMLInputElement
タイプオブジェクト。それはjQueryオブジェクトではありません。として .is
jQueryオブジェクト方法です。 box
.
それはちょうど行うことができます、 $(box)
. 。次に、適用します .is()
.
$(box).is(":checked");
所属していません StackOverflow