Javascript 如何在按下单选按钮时将CSS属性更改为“显示:无”

Javascript 如何在按下单选按钮时将CSS属性更改为“显示:无”,javascript,html,jquery,css,Javascript,Html,Jquery,Css,所以,当我选择一个收音机(当前)时,我试图让两个输入框显示在一个表中,如果我选择另一个收音机(不存在),则隐藏这两个输入框。我得到了这个代码,但有一个小问题 函数缺席开关(){ document.getElementsByClassName(“table-custom3”)[0].style.display='none'; } 函数presentSwitch(){ document.getElementsByClassName(“table-custom3”)[0].style.display

所以,当我选择一个收音机(当前)时,我试图让两个输入框显示在一个表中,如果我选择另一个收音机(不存在),则隐藏这两个输入框。我得到了这个代码,但有一个小问题

函数缺席开关(){
document.getElementsByClassName(“table-custom3”)[0].style.display='none';
}
函数presentSwitch(){
document.getElementsByClassName(“table-custom3”)[0].style.display='block';
}


如果不是
getElementsByClassName
notwork,则需要将代码包装在
table
标记中。另外
getElementsByClassName
返回数组元素,您需要按索引获取

[...document.getElementsByClassName("table-custom3")].map((item)=> {item.style.display = 'none'});
函数缺席开关(){
[…document.getElementsByClassName(“table-custom3”)].map((item)=>{item.style.display='none'});
}
函数presentSwitch(){
[…document.getElementsByClassName(“table-custom3”)].map((item)=>{item.style.display='''});
}

使用循环隐藏和显示类中的所有元素

此外,您需要使用
内联块
而不是
,以防止它们被放在不同的行上

函数缺席开关(){
from(document.getElementsByClassName(“table-custom3”)).forEach(el=>el.style.display='none');
}
函数presentSwitch(){
from(document.getElementsByClassName(“table-custom3”)).forEach(el=>el.style.display='inline block');
}

如何使用根据同级元素的状态切换的类

差不多

.table-custom2.enabled~.table-custom3{display:block;}
.table-custom2.disabled~.table-custom3{display:none;}
函数缺席开关(){
document.querySelector(“.table-custom2”).classList.replace(“已启用”、“已禁用”);
}
函数presentSwitch(){
document.querySelector(“.table-custom2”).classList.replace(“禁用”、“启用”);
}

这是您的HTML代码

<table>
    <tr>
      <td class="table-custom2">
        <input type="radio" id="present" name="attendance" onclick="presentSwitch(this) "/></td>
        <td class="table-custom2 "><input type="radio" id="absent" name="attendance" onclick="absentSwitch(this) " /</td>
          <td class="table-custom3 "><input type="time " class="input-xsmall "></td>
          <td class="table-custom3 "><input type="time " class="input-xsmall "></td>
    </tr>
  </table>

现在您可以处理表中的多个输入了

我从您的代码中创建了一个片段,但它不起作用。你能编辑一下吗?这样我们就可以重现你的问题了?另外,请确保您的代码格式正确,您在第一次HTMLjQuery中遇到了一系列错误:
$(“.table-custom3”).hide()
$(“.table-custom3”).show()
@克隆编辑了它。我认为它没有显示正确,因为css文件不在这里。很抱歉。@Barmar我对这一点很陌生,如果这是一个愚蠢的问题,我很抱歉,但我到底应该如何使用该代码?它取代了
document.getElementsByClassName(“table-custom3”)[0]。style.display='none'row=element。最近的(“tr”)
将找到包含
元素的行。和
行。querySelectorAll(“.table-custom3”)
将在该行中找到类成员。谢谢。我现在就去看看
function absentSwitch(event) {
     event.parentElement.parentElement.children[2].style.display = 'none';
     event.parentElement.parentElement.children[3].style.display = 'none';
}
function presentSwitch(event) {
     event.parentElement.parentElement.children[2].style.display = 'block';
     event.parentElement.parentElement.children[3].style.display = 'block';
}