「checked」は動的に割り当てられる DOM プロパティ (ブール値) であり、属性にアクセスすると、ページが読み込まれたときにそこにあった値 (または setAttribute を使用したときに配置した値) のみが返されます。
また、MooTools 1.11 には複雑なセレクターがなく (属性を $$ 内で直接フィルタリングすることはできません)、filterByAttribute 関数は直接の文字列比較のみを受け入れるため、これが唯一の (そして最良の!) オプションです。
$(sId).getElements('input').filter(function(input) {
return /radio|checkbox/.test(input.getAttribute('type')) && input.checked;
})
注:完全を期すためにラジオを追加しました。チェックされたステータスを確認するには、とにかくフィルターループを実行する必要があります。
プロセスを簡素化し、コードを再利用できるようにしたい場合 (MooTools の方法)、次のように、チェックされたフィルターを Elements に混在させることもできます。
Element.extend({
getCheckedInputs: function() {
return this.getElements('input').filter(function(input) {
return /radio|checkbox/.test(input.getAttribute('type')) && input.checked;
});
}
});
そして、選択呼び出しは次のように削減されます。
$(sID).getCheckedInputs();