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