2

mootools 1.11は、divにチェックボックスがオンになっているかどうかをどのように判断できますか?

$ $$ $ E $ ES getElementsおよびcssセレクターを使用してあらゆる種類のバリエーションを試しましたが、このdivにチェックボックスが含まれていない場合はtrueが返されません。

var ticked = $(sId).getElements('[checked=checked]');
if($chk(ticked)){alert('yo');}else{unticked = true;}
4

3 に答える 3

3

「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();
于 2010-07-28T18:27:53.043 に答える
0

ドキュメントから:

$(sId).getElements("input:checked");
于 2009-12-23T02:02:12.430 に答える
-1

1.1の場合

console.log( $('id').getProperty('checked') );
于 2010-01-22T16:54:21.403 に答える