Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Class“;名称”;而不是“;名称”;_Javascript - Fatal编程技术网

Javascript 使用Class“;名称”;而不是“;名称”;

Javascript 使用Class“;名称”;而不是“;名称”;,javascript,Javascript,我很难理解如何解决下面的代码,使其使用“类名”而不是“名称” 例如:当您单击“上午9点我只想要”时,所有其他上午9点元素将被禁用 谢谢你的见解 功能更改(el){ var ckName=document.getElementsByTagName('input'); for(var i=0,c;c=ckName[i];i++){ if(ckName[i].type==“checkbox”&&el.className==“9AM”){ c、 禁用=!(!el.checked | c==el);

我很难理解如何解决下面的代码,使其使用“类名”而不是“名称”

例如:当您单击“上午9点我只想要”时,所有其他上午9点元素将被禁用

谢谢你的见解


功能更改(el){
var ckName=document.getElementsByTagName('input');
for(var i=0,c;c=ckName[i];i++){
if(ckName[i].type==“checkbox”&&el.className==“9AM”){
c、 禁用=!(!el.checked | c==el);
}
}
}
上午9点
上午9点
上午10点
上午10点
测试4
输入

如果您要做的是禁用具有相同类名的任何其他元素,则需要稍微更新If语句。您只检查传递到函数中的元素,而我认为您的意思是将检查的元素与所有其他元素className进行比较

function ckChange(el) {
  var ckName = document.getElementsByTagName("input");

  for (var i = 0, c; (c = ckName[i]); i++) {
    console.log(el.className)
    if (ckName[i].type == "checkbox" && ckName[i].className === el.className) {
      c.disabled = !(!el.checked || c === el);
    }
  }
}

这是一个有效的代码笔:

您可以使用相同的类名对元素进行分组,然后在选中复选框时,禁用其组中的所有元素。 以下是一个例子:

constgroupclasses=['9AM','10AM','11AM'];
const groups=groupClasses.map((cls)=>{
const elms=document.getElementsByClassName(cls);
返回数组.from(elms);
});
groups.forEach((组)=>{
group.forEach((elm)=>{
elm.addEventListener('change',()=>{
group.filter(e=>e!==elm).forEach((e)=>{
e、 禁用=elm.checked;
});
});
});
});

上午9点
上午9点
上午10点
上午10点
测试4
输入

将当前元素类与所有其他类一起检查 ckName[i].className==el.className

功能更改(el){
var ckName=document.getElementsByTagName('input');
for(var i=0,c;c=ckName[i];i++){
//console.log(ckName[i]);
if(ckName[i].type==“checkbox”&&ckName[i].className==el.className){
ckName[i].disabled=true;
//c、 禁用=!(!el.checked | c==el);
}
}
}
上午9点
上午9点
上午10点
上午10点
测试4
输入

这信息太少了。复选框应该如何准确地工作?无论你想做什么,你都可能会发现和/或有用。这正是他的代码所做的。。你在他的电脑上运行代码片段了吗?@GustavoAGarcia没有,我的代码片段只会禁用与单击的代码片段具有相同类的复选框,OP会禁用所有这些复选框。非常感谢你花时间提供帮助!在这里学到了很多,太棒了!如果我的答案是你想要的,请接受它作为答案。谢谢