Javascript 为什么此复选框缺少“0”;勾选“;财产?

Javascript 为什么此复选框缺少“0”;勾选“;财产?,javascript,dom,properties,Javascript,Dom,Properties,在我正在编写的组件中,我想检查元素的“checked”属性。不幸的是,元素似乎不包含“checked”属性,至少不是我设置的方式 以下是JS代码片段: var submenus = document.querySelectorAll( ".hbm-panel-item-label" ); for ( var label of submenus ) { // console.log( "label.for = " + label.getAttribute( "for" ) ); lab

在我正在编写的组件中,我想检查元素的“checked”属性。不幸的是,元素似乎不包含“checked”属性,至少不是我设置的方式

以下是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,这将需要大约三行代码。

属性在DOM中,属性在解析到DOM中的HTML中。 复选框的HTML没有“checked”属性,但复选框有“checked”属性。 你可能只需要检查一下

cb.checked

而不是寻找属性。

也许checkbox.checked对你有用:你在标题中说了。这是一个“属性”,而不是一个“属性”,这就是它。工作太辛苦了。谢谢