检查用类名选中了多少个复选框?

时间:2019-03-08 05:13:13

标签: javascript

我找到了这个可以接受的答案,但是对我来说不起作用:

boo^M
boo^M

当我尝试记录inputElements [0]时记录:

var checkedValue = null; 
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValue = inputElements[i].value;
           break;
      }
}

我只想使用纯js,没有jquery,可以帮忙吗?

5 个答案:

答案 0 :(得分:3)

要获取所有选中复选框的计数,可以使用filter(),如下所示:

var inputElements = [].slice.call(document.querySelectorAll('.messageCheckbox'));
var checkedValue = inputElements.filter(chk => chk.checked).length;

console.log(checkedValue);
<input type="checkbox" class="messageCheckbox" checked>
<input type="checkbox" class="messageCheckbox">
<input type="checkbox" class="messageCheckbox" checked>

答案 1 :(得分:0)

<input type="checkbox" class="todo-checkbox">
<input type="checkbox" class="todo-checkbox">
<input type="checkbox" class="todo-checkbox">
<input type="checkbox" class="todo-checkbox">
<input type="checkbox" class="todo-checkbox">

选中所有复选框,然后使用forEach循环计算选中了哪些复选框

function countChecked(){
  const checkboxes = document.querySelectorAll('.todo-checkbox')
  let count=0
  checkboxes.forEach(checkbox=>{
    if(checkbox.checked) count+=1
  })
  return count
}

您可以使用代码here

,并且当您记录inputElements [i]时,您将获得节点本身document.getElementsByClassNamedocument.querySelectorAll等,它们返回NodeList而不是JavaScript数组。

答案 2 :(得分:0)

将名称属性赋予所有复选框,并使用此代码对选中的复选框进行计数

$('input:checkbox[name=ideaList]:checked').length

如果您想获取选中复选框的值,请选择一个变量并将其推送到该变量中

var selectedIdeas    = [];
$.each($("input:checkbox[name=ideaList]:checked"), function(){
     selectedIdeas.push($(this).val());
});

答案 3 :(得分:0)

假设,您要检查使用Classname选中了多少复选框:

稍微让您的代码

var checkedBoxCount =0;
var inputElements = document.getElementByClassName(`your_classname`);
for(var i=0; i<inputElements.length; i++){
  if(inputElements[i].checked){
    checkBoxCount++;
  }
}

console.log(checkedBoxCount); //returns total count of checkboxes being checked

如果您想获得选中的复选框,

var checkedBoxes =[];
var inputElements = document.getElementByClassName(`your_classname`);
for(var i=0; i<inputElements.length; i++){
  if(inputElements[i].checked){
    checkBoxes.push(inputElements[i])
  }
}

console.log(checkedBoxes); //returns the checked check boxes

答案 4 :(得分:0)

希望这对您有帮助,纯JS无jQuery。

function countCheckbox() {
	var count=0;
	var checkboxes = document.getElementsByClassName('checkbox');
	for(var i in checkboxes){
	       if(checkboxes[i].checked)count++; 
	}
	console.log('COUNT:',count);
}
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<button onclick="countCheckbox();">CLICK</button>