Javascript 获取元素内的复选框
我有一个Javascript 获取元素内的复选框,javascript,html,checkbox,Javascript,Html,Checkbox,我有一个包含一些和。 现在,我想遍历div的所有元素,如果元素是复选框并选中,则执行一些操作。我已经试过了 var e = document.getElementById("myDiv"); var c; for(c in e.children){ if(c.checked) { //... } } 但是c.checked始终是未定义的。 有人能告诉我我是怎么做到的吗?你可以直接去瞄准你的:选中的,使用: const ckbChecked = document.
包含一些
和
。
现在,我想遍历div的所有元素,如果元素是复选框并选中,则执行一些操作。我已经试过了
var e = document.getElementById("myDiv");
var c;
for(c in e.children){
if(c.checked) {
//...
}
}
但是c.checked
始终是未定义的。
有人能告诉我我是怎么做到的吗?你可以直接去瞄准你的
:选中的,使用:
const ckbChecked = document.querySelectorAll("#myDiv input[type=checkbox]:checked");
或者一个接一个,然后根据布尔值元素确定每个元素的处理方法。选中属性状态:
const ckb=document.queryselectoral(“#myDiv input[type=checkbox]”);
[…ckb].forEach(el=>{
如果(el.checked){
//检查完毕!
控制台日志(el.value)
el.最近的(“标签”).style.background=“黄金”;
}否则{
//没有检查一个
//…做点别的
el.最近的(“标签”).style.background=“灰色”;
}
});代码>
福
酒吧
巴兹
let checkbox=[…document.querySelectorAll('input[type=checkbox])]
复选框。forEach(复选框=>{
如果(复选框。选中){
console.log('我被选中',复选框)
}
})
实际选中复选框。旧的方法是选择输入并检查它们是否被选中,现代的方法是,只需使用选择器来获取选中的输入
var oldWay=document.getElementById(“myDiv”).getElementsByTagName(“输入”);
对于(var i=0;i使用以下公式
var匹配=[];
var searchEles=document.getElementById(“myDiv”).children;
对于(var i=0;i
c
在您的中,因为in
循环是数组的索引,这就是为什么您试图访问选中的属性时未定义它的原因
以下代码适用于您:
<div id="my-div">
<input type="checkbox" />
<input type="checkbox" checked="checked" />
<input type="checkbox" />
<input type="checkbox" />
</div>
JS:
让myDiv=document.getElementById('my-div');
for(设i=0;i
无论如何,您的代码实际上非常接近。它应该是的,而不是中的
var e=document.getElementById(“myDiv”);
var c;
适用于(c/e.儿童){
如果(c.勾选){
控制台日志(“获胜”)
}
}
Jquery是允许的?为什么不选择复选框?@kannan您看到问题中的Jquery标记了吗?请发布附带的HTML。document.querySelectorAll(“#myDiv>input”)
应该可以帮助您开始。获取#myDiv
节点列表下的所有输入,有什么特殊的原因需要分解吗?@ProfessorAllman预防措施:因为它不是一个实际的数组。分解使它成为一个数组。用户没有要求,但最好只循环复选框而不是所有输入
let myDiv = document.getElementById('my-div');
for (let i = 0; i < myDiv.children.length; i++) {
console.log(myDiv.children[i]);
if (myDiv.children[i].nodeName.toLowerCase() === 'input') {
console.log(myDiv.children[i].checked);
}
}