如何计算视图中打开的对象上的复选框数量?

时间:2018-12-31 05:34:58

标签: javascript angularjs checkbox

我正在尝试计算当前所在面板上复选框元素的数量。发生的是,我在4个面板上都有复选框,每个面板上都有复选框。 一次只能打开一个面板。当我对复选框进行计数时,我得到的是应用程序中所有复选框的总数,而不是显示的面板上的数字。

我尝试专门告诉代码这是打开的窗口     var a = angular.element(document.querySelector('[widget-id =“ popup-1”]       div'))。scope()。$ parent.me.visible
但无济于事,

我不确定如何告诉代码这是打开的面板,仅在其上选中复选框即可。

我试图计算盒子的数量,然后比较选中的盒子,如果num =选中,那么我将继续。

$scope.checkNum = function() {
 // var a = angular.element(document.querySelector('[widget-id="popup-1"] 
  div')).scope().$parent.me.visible
var inputs = document.getElementsByTagName("input");
//or document.forms[0].elements;
var cbs = [];
//will contain all checkboxes
var checked = [];
//will contain all checked checkboxes
  for (var i = 0; i < inputs.length; i++) {

  if (inputs[i].type == "checkbox") {
    cbs.push(inputs[i]);
    if (inputs[i].checked) {
      checked.push(inputs[i]);
    }

}
}
 var nbCbs = cbs.length;
 //number of checkboxes
 var nbChecked = checked.length;
   //number of checked checkboxes
    alert("# checkboxes = " + nbCbs + "\n" +  "# checked checkboxes = " + 
    nbChecked);
    console.log(" # checked checkboxes = " + nbChecked);
}

1 个答案:

答案 0 :(得分:1)

假设您当前的面板如下所示

var test = document.getElementById("dv_Test");
get_CheckboxCount(test);
function get_CheckboxCount(element) {
  var check = element.querySelectorAll("input[type=checkbox]");
  console.log(check.length);
}
<div id="dv_Test">
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
</div>

<div id="dv_Test2">
    <input type="checkbox" />
</div>