在我写作的一个组件中,我想检查"检查"元素的属性。不幸的是,该元素似乎并未包含"已检查"财产,至少不是我设置的方式。
这是JS片段:
var submenus = document.querySelectorAll( ".hbm-panel-item-label" );
for ( var label of submenus ) {
// console.log( "label.for = " + label.getAttribute( "for" ) );
label.addEventListener( "click", function() {
var label_for = this.getAttribute( "for" );
// console.log( label_for + " was clicked." );
var checkboxes = document.querySelectorAll( ".hbm-panel-item-checkbox" );
for ( var cb of checkboxes ) {
console.debug( cb );
if ( cb.getAttribute( "name" ) === label_for ) {
console.log( label_for + " has attribute 'checked': " + cb.hasAttribute( "checked" ) );
console.log( label_for + " is " + cb.getAttribute( "checked" ) );
}
}
});
}
......结果如下:
当我打开该元素的属性时,我确实看到一个值为" false"的已检查属性:
提前道歉,我是JS新秀。我觉得这很简单。我也觉得如果我使用jQuery,这将花费大约三行代码......
答案 0 :(得分:1)
属性位于DOM中,属性位于HTML中,解析为DOM。 复选框的HTML没有“已检查”属性,但复选框的属性为“已检查”。 您可能只需要检查
cb.checked
而不是寻找属性。