mootools 1.11 div包含选中的复选框

时间:2009-12-23 01:26:30

标签: mootools checked

mootools 1.11如何确定div是否包含任何选中的复选框?

使用$ $$ $ E $ ES getElements和css选择器尝试各种变体,如果此div不包含勾选框,则它不会返回true

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

3 个答案:

答案 0 :(得分:3)

“checked”是一个动态分配的DOM属性(它是一个布尔值),访问该属性只返回页面加载时的值(或使用setAttribute时放置的值)。
此外,由于MooTools 1.11没有复杂的选择器(属性不能直接在$$内过滤)而且filterByAttribute函数只接受直接字符串比较,这是你唯一的(也是最好的!)选项:

$(sId).getElements('input').filter(function(input) {
    return /radio|checkbox/.test(input.getAttribute('type')) && input.checked;
})

注意:为了完整性,我添加了无线电,无论如何都必须运行过滤器循环以验证检查状态。

如果您想简化流程并能够重用代码(MooTools方式),您还可以将选中的过滤器混合到这样的元素中:

Element.extend({
    getCheckedInputs: function() {
        return this.getElements('input').filter(function(input) {
            return /radio|checkbox/.test(input.getAttribute('type')) && input.checked;
        });
    }
});

然后您的选择呼叫将缩减为:

$(sID).getCheckedInputs();

答案 1 :(得分:0)

来自The Documentation

$(sId).getElements("input:checked");

答案 2 :(得分:-1)

for 1.1

console.log( $('id').getProperty('checked') );