如何在 html 侧边栏中包含选中所有复选框

How to include check all box in html sidebar

我有以下代码用于在 Google 文档侧边栏中生成复选框:

for( var i = 0;i < values.length; i ++)
        {
        var cb = document.createElement( "input" );
        cb.type = "checkbox";
        cb.id = values[i][1];
        cb.value = values[i][0];
        var text = document.createTextNode( values[i][0].substring(0, 30) );
        var br = document.createElement('br');
        document.getElementById( 'class_list' ).appendChild( cb );
        document.getElementById( 'class_list' ).appendChild( text );
        document.getElementById( 'class_list' ).appendChild( br );     
       }

有没有办法在此列表的顶部包含一个选中所有框,然后将所有选定的值和 ID 传递给另一个函数?

这里是 HTML 和客户端 JavaScript,它们将执行您想要的操作:

<div class="inputFormElement"><!-- Beginning of input -->

  <button onmouseup="checkAllBoxes()">Select All</button>

  <br>
  <br>

  <div class="chkBoxListElement">
    <input type="checkbox" id="idOne" value="1">One<br>
    <input type="checkbox" id="idTwo" value="2">Two<br>
    <input type="checkbox" id="idThree" value="3">Three<br>
    <input type="checkbox" id="idFour" value="4">Four<br>
    <input type="checkbox" id="idFive" value="5">Five<br>
    <input type="checkbox" id="idSix" value="6">Six<br>
  </div>

</div><!-- End of input -->

<script>
window.checkAllBoxes = function() {
  var allCheckBoxes,dataAsString,elementHoldingChkBoxes,i,L,objectOfData,thisChkBox,thisID;

  objectOfData = {};

  elementHoldingChkBoxes = document.getElementsByClassName('chkBoxListElement')[0];
  console.log('elementHoldingChkBoxes: ' + elementHoldingChkBoxes)
  console.log('typeof elementHoldingChkBoxes: ' + typeof elementHoldingChkBoxes)

  allCheckBoxes = elementHoldingChkBoxes.getElementsByTagName('input');//Get all inputs

  L = allCheckBoxes.length;

  for (i=0;i<L;i++) {
    thisChkBox = allCheckBoxes[i];//Get this check box
    if (thisChkBox) {//Not null, undefined or empty string - truthy
      thisChkBox.checked = true;
      thisID = thisChkBox.id;
      objectOfData[thisID] = thisChkBox.value;
    }
  }

  dataAsString = JSON.stringify(objectOfData);//Convert object to a string
  console.log('dataAsString: ' + dataAsString)

  mySecondFunction(objectOfData);
}

window.mySecondFunction = function(data) {
  console.log(data)

}
</script>

如果您希望输入框在加载边栏时动态更改,则需要一些代码来构建 HTML。但那是另一个问题了。