mootools 1.11 如何确定 div 是否包含任何选中的复选框?
使用 $ $$ $E $ES getElements 和 css 选择器尝试了各种变体,如果此 div 不包含复选框,它只是不返回 true
var ticked = $(sId).getElements('[checked=checked]');
if($chk(ticked)){alert('yo');}else{unticked = true;}
“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();
从文档:
$(sId).getElements("input:checked");
1.1
console.log( $('id').getProperty('checked') );