首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用单选按钮隐藏div

如何用单选按钮隐藏div
EN

Stack Overflow用户
提问于 2022-01-11 05:52:30
回答 3查看 69关注 0票数 0

我希望我能在选择单选按钮之后显示或隐藏一个div。

我有4个单选按钮

包括必须显示相同div的3。

和另一个div

我找到的最好的方法就是这个

但是,是否有办法避免具有相同内容的3div呢?

我想更好地解释一下,当我们选择"4辆车,3辆车,2辆车“时,id = "liv -1”只是可见的,但如果选择了id = "liv - 1“或隐藏了id=”liv-1“。

代码语言:javascript
复制
$(document).ready(function() {
  $("div.desc").hide();
  $("input[name$='choix_livraison']").click(function() {
    var test = $(this).val();
    $("div.desc").hide();
    $("#ref-" + test).show();
  });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

2 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-ENVELLOPPE-belgique" value="1" checked="checked"> 
3 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-belgiqueE" value="2">
3 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-FRANCE" value="3">
3 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-autre" value="4">

<div id="ref-1" class="desc">
  j'ai sélectionné 2
</div>
<div id="ref-2" class="desc">
  j'ai sélectionné 3
</div>
<div id="ref-3" class="desc">
  j'ai sélectionné 3
</div>
<div id="ref-4" class="desc">
  j'ai sélectionné 3
</div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-01-11 07:17:36

不要使用ids,而是使用数据属性来使用所需的值。就像我假设您想在语言上这样做,所以我使用了data-lang=""。按你的喜好调整。

ps。如果在加载页面时选择了一个值,您也可能希望做一个默认的打开值。

代码语言:javascript
复制
$(document).ready(function() {
  $("div.desc").hide();
  $("input[name$='choix_livraison']").click(function() {
    var languageCode = $(this).data('lang');
    $("div.desc").hide();
    $("#ref-" + languageCode).show();
  });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

2 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-ENVELLOPPE-belgique" data-lang="be" value="1" checked="checked"> 
3 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-belgiqueE" data-lang="be" value="2">
3 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-FRANCE" data-lang="fr" value="3">
3 Cars
<input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-autre" data-lang="be" value="4">


<div id="ref-be" class="desc">
  languageCode BE
</div>
<div id="ref-fr" class="desc">
  languageCode FR
</div>

票数 0
EN

Stack Overflow用户

发布于 2022-01-11 06:22:08

这条路:

https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList/toggle

  1. 使用表单
  2. 使用标签
  3. 使用css
  4. 使用mdn doc ->

代码语言:javascript
复制
const
  myForm = document.querySelector('#my-form')
, divLiv = document.querySelectorAll('div.desc')
, ref_Divs = 
    { '1' : 'ref-2'
    , '2' : 'ref-3' 
    , '3' : 'ref-3' 
    , '4' : 'ref-3' 
    };
myForm.onsubmit = e => e.preventDefault() // disable form page reload
  ;
myForm.oninput = e =>
  {
  let ref = ref_Divs[myForm.choix_livraison.value ]
  divLiv.forEach(el =>
    {
    el.classList.toggle('selected', ref===el.id)
    })
  }
代码语言:javascript
复制
.desc          { display: none; }
.desc.selected { display: block; }
label          { display: block; }
代码语言:javascript
复制
  <form id="my-form">
    <label>
      2 Cars
      <input type="radio" name="choix_livraison" value="1" class="choix_livraison" data-nom="POSTE-ENVELLOPPE-belgique"  checked="checked"> 
      POSTE-ENVELLOPPE-belgique
    </label>
    <label>
      3 Cars
      <input type="radio" name="choix_livraison" value="2" class="choix_livraison" data-nom="mondial relay-belgiqueE" >
      mondial relay-belgiqueE 
    </label>
    <label>
      3 Cars
      <input type="radio" name="choix_livraison" value="3" class="choix_livraison" data-nom="mondial relay-FRANCE" > 
      mondial relay-FRANCE
    </label>
    <label>
      3 Cars
      <input type="radio" name="choix_livraison" value="4" class="choix_livraison" data-nom="mondial relay-autre" > 
      mondial relay-autre
    </label>
  </form>
  <br>
  <div id="ref-2" class="desc selected"> j'ai sélectionné 2 </div>
  <div id="ref-3" class="desc"> j'ai sélectionné 3 </div>

票数 0
EN

Stack Overflow用户

发布于 2022-01-11 07:38:24

你只有两个选择。显示a) j‘’ai sélectionné3或b) j‘’ai sélectionné2,然后在事件处理程序中使用一个简单的if条件。就像这样:

工作方式示例

代码语言:javascript
复制
const sel = document.querySelector('#sel');
sel.addEventListener('click', (e) => {
  const i = document.querySelector('input[name="choix_livraison"]:checked');  
  let val = e.target.value;
  console.log('=>',val)
  if (val == 1) {    
    // show output 1
    document.getElementById('output-2').classList.add('hide')
    document.getElementById('output-1').classList.remove('hide')
  } else {
    console.log(2)
    // show output 2
    document.getElementById('output-1').classList.add('hide');
    document.getElementById('output-2').classList.remove('hide');    
  }
});
代码语言:javascript
复制
.hide {
  display:none;
}
代码语言:javascript
复制
<div id="sel">
  2 Cars
  <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-ENVELLOPPE-belgique" value="1" checked="checked"> 
  3 Cars
  <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-belgiqueE" value="2">
  3 Cars
  <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-FRANCE" value="3">
  3 Cars
  <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="mondial relay-autre" value="4">
</div>

<div id="output-1" class="hide desc">
  j'ai sélectionné 2
</div>
<div id="output-2" class="hide desc">
  j'ai sélectionné 3
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70662202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档