Javascript 当我点击一个div时,它会隐藏另一个div

Javascript 当我点击一个div时,它会隐藏另一个div,javascript,html,css,Javascript,Html,Css,这段代码一直工作到第8版,但在第8版之后就不工作了。为什么会发生这种情况?请帮助我 还有一件事请允许我解释一下,如果你纠正了这个代码,这个问题就来了,因为这个方法对更多的div不起作用,对不起,我知道这是个愚蠢的问题。提前谢谢 <div style="flex: 1"> <label class="ac_trigger" for="ac1">Sweets</label>

这段代码一直工作到第8版,但在第8版之后就不工作了。为什么会发生这种情况?请帮助我 还有一件事请允许我解释一下,如果你纠正了这个代码,这个问题就来了,因为这个方法对更多的div不起作用,对不起,我知道这是个愚蠢的问题。提前谢谢

  <div style="flex: 1">
        <label class="ac_trigger" for="ac1">Sweets</label>
        <input type="checkbox" class="ac_hide"  onclick="showHide(this,'div1')" id="ac1" name="x1">
      </div>
      <div class="ac_container" id="div1">
        {% for a,b in sweets.items %}
        <table class="foods">
          <tr>
            <th id="{{b}}">{{b}}</th><td><input type="number" name="{{a}}" value="0" id="{{a}}"></td>
          </tr>
        </table>
        {% endfor %}      
      </div>

..................so on to below one.............

      <div style="flex: 1">
        <label class="ac_trigger" for="ac35">Vegitables</label>
        <input type="checkbox" class="ac_hide"  onclick="showHide(this,'div35')" id="ac35" name="x1">
      </div>
      <div class="ac_container" id="div35">
        {% for a,b in veg.items %}
        <table class="foods">
          <tr>
            <th id="{{b}}">{{b}}</th><td><input type="number" name="{{a}}" value="0" id="{{a}}"></td>
          </tr>
        </table>
        {% endfor %}      
      </div>
     </div> 


    </div>
    <div style="text-align: center;">
      <button>Submit</button>
    </div>
  </form>
  <script type="text/javascript">
  function showHide(tagData, divId){
    let allInputs = ['ac1','ac2','ac3','ac4','ac5','ac6','ac7','ac8','ac9','ac10','ac11','ac12','ac13','ac14','ac15','ac16','ac17','ac18','ac19','ac20','ac21','ac22','ac23','ac24','ac25','ac26','ac27','ac28','ac29','ac30','ac31','ac32','ac33','ac34','ac35'];
   let divToChange = document.getElementById(divId);
   divToChange.style.display = tagData.checked ? "block" : "none";
   if(tagData.checked){
   for(let i = 0 ; i = allInputs.length ; i++){
     if(tagData.id !== allInputs[i]) {
       let divToHideId = 'div'+allInputs[i].substr(allInputs[i].length - 1)
       document.getElementById(divToHideId).style.display = 'none'
       document.getElementById(allInputs[i]).checked = false
     }
   }
   }
   
  };
  </script>

糖果
{sweets.items%%中a、b的百分比]
{{b}
{%endfor%}
以此类推至1以下。。。。。。。。。。。。。
蔬菜
{veg.items%中a、b的百分比}
{{b}
{%endfor%}
提交
函数showHide(tagData,divId){
让所有输入=['ac1'、'ac2'、'ac3'、'ac4'、'ac5'、'ac6'、'ac7'、'ac8'、'ac9'、'ac10'、'ac11'、'ac12'、'ac13'、'ac14'、'ac15'、'ac16'、'ac17'、'ac18'、'ac19'、'ac20'、'ac21'、'ac22'、'ac23'、'ac24'、'ac25'、'ac26'、'ac27'、'ac28'、'ac30'、'ac34';
让divToChange=document.getElementById(divId);
divToChange.style.display=tagData.checked?“块”:“无”;
if(tagData.checked){
for(设i=0;i=allInputs.length;i++){
如果(tagData.id!==所有输入[i]){
设divToHideId='div'+allInputs[i].substr(allInputs[i].length-1)
document.getElementById(divToHideId).style.display='none'
document.getElementById(allInputs[i]).checked=false
}
}
}
};

你似乎遗漏了什么

<script type="text/javascript">
  function showHide(tagData, divId){
    let allInputs = ['ac1','ac2','ac3','ac4','ac5','ac6','ac7','ac8','ac9','ac10','ac11','ac12','ac13','ac14','ac15','ac16','ac17','ac18','ac19','ac20','ac21','ac22','ac23','ac24','ac25','ac26','ac27','ac28','ac29','ac30','ac31','ac32','ac33','ac34','ac35'];
    let divToChange = document.getElementById(divId);
    divToChange.style.display = tagData.checked ? "block" : "none";
    if(tagData.checked){

      //TRY TO USE for(let i = 0;i<=allInputs.length;i++)

      for(let i = 0 ; i = allInputs.length ; i++){
        if(tagData.id !== allInputs[i]) {
          let divToHideId = 'div'+allInputs[i].substr(allInputs[i].length - 1)
          document.getElementById(divToHideId).style.display = 'none'
          document.getElementById(allInputs[i]).checked = false
        }
      }
    }
        
  };

</script>

函数showHide(tagData,divId){
让所有输入=['ac1'、'ac2'、'ac3'、'ac4'、'ac5'、'ac6'、'ac7'、'ac8'、'ac9'、'ac10'、'ac11'、'ac12'、'ac13'、'ac14'、'ac15'、'ac16'、'ac17'、'ac18'、'ac19'、'ac20'、'ac21'、'ac22'、'ac23'、'ac24'、'ac25'、'ac26'、'ac27'、'ac28'、'ac30'、'ac34';
让divToChange=document.getElementById(divId);
divToChange.style.display=tagData.checked?“块”:“无”;
if(tagData.checked){

//尝试使用(让i=0;i函数,这是我们在这个问题上需要的函数 我现在很高兴……向他人致以最良好的问候

function showHide(evt, divId) {
  var i, tabcontent, tablinks;
  tabcontent = document.getElementsByClassName("ac_container");
  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }
  tablinks = document.getElementsByClassName("ac_hide");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }
  document.getElementById(divId).style.display = "block";
  evt.currentTarget.className += " active";
}
函数showHide(evt,divId){
var i,tabcontent,tablinks;
tabcontent=document.getElementsByClassName(“ac_容器”);
对于(i=0;i
no bro it's not working plzz help me解决问题我已经这么做了我发布了这个错误的标签,因为如果你看div标签,你正在分配id=“ac1”,因此你不可能使用showHide(这个,“div1”)访问。试着将参数更改为下面的参数。onclick=“showHide(this,'ac1')”onclick=“showHide(this,'ac1')”它不工作,然后或plzz你可以建议任何其他方法来做这整个功能