【问题标题】:Hide and show specific divs on select在选择时隐藏和显示特定的 div
【发布时间】:2016-03-18 18:22:37
【问题描述】:

好的,我有从数据库中选择的动态类别,我将它们放在选择下拉列表中, 每个类别都有多篇文章, 首先我显示所有文章 问题是,我想选择一个类别,我只显示与该类别相关的文章并隐藏其余的, 为此,我将文章放在 div 中,每个 div 都有自己相关的类别。 我卡住了如何隐藏和显示它们 这是我的代码示例:

 <select  id="selectleft" >
     <option value="categorie">categorie</option></center>
         <option value="categorie1">sport</option>
         <option value="categorie2">movies</option>
         <option value="categorie3">news</option>


        </select>

并且文章是这样显示的

<div class="categorie1>article 1 </div>
<div class="categorie1>article 2 </div>
<div class="categorie2>article 1 </div>
<div class="categorie2>article 2 </div
<div class="categorie3>article 3 </div>
<div class="categorie3>article 3 </div

好的,例如,如果我选择 categorie1 ,则所有类别为 1 的 div 都会显示,而其余的则隐藏

【问题讨论】:

  • 看看更改处理程序和类选择器
  • 我不知道该尝试什么..我知道 hide() 和 show() 但我如何使用它来完成我想要的?
  • 请清楚你想要什么,在第一段你说问题是,我想选择一个类别,我只显示与该类别相关的文章并隐藏其余的文章 在最后一行中您说 如果我选择 categorie1 ,则所有类别为 1 的 div 都将被隐藏

标签: javascript jquery html


【解决方案1】:

这可能会有所帮助;)

$('#selectleft').change(function() {
  /* hide visible articles */
  $('.category:visible').hide();
  
  /* show selected option articles */
  $('.' + this.value).show();
});
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <select id="selectleft">
      <option value="categorie">categorie</option>
      <option value="categorie1">sport</option>
      <option value="categorie2">movies</option>
      <option value="categorie3">news</option>
    </select>

    <div class="category categorie">article(categorie option 1 default selected)</div>
    <div class="category categorie1">article 1(sport option 2)</div>
    <div class="category categorie1">article 2(sport option 2)</div>
    <div class="category categorie2">article 1(movies option 3)</div>
    <div class="category categorie2">article 2(movies option 3)</div>
    <div class="category categorie3">article 3(news option 4)</div>
    <div class="category categorie3">article 3(news option 4)</div>

【讨论】:

  • 嗨,我不想提出新问题,如果你能帮助我更多,我真的很想,所以我接下来想要的是,当我点击类别时,我会查看完整的文章,但是......如果就像两篇文章同名一样,我只显示第一篇,例如,如果我在您的示例中单击类别,它应该显示文章 1、文章 2、文章 3,而其他文章则隐藏它们,因为它们具有相同的名称。
【解决方案2】:

您可以使用change() 事件处理程序

$('#selectleft').change(function() {
  // hide all div
  $('.categorie').hide();
  // or hide only the rest by
  // $('.categorie').not('.' + this.value).hide();

  // show div based on selected option
  $('.' + this.value).show();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="selectleft">
  <option value="categorie">categorie</option>
  <option value="categorie1">sport</option>
  <option value="categorie2">movies</option>
  <option value="categorie3">news</option>
</select>

<div class="categorie categorie1">article 1</div>
<div class="categorie categorie1">article 2</div>
<div class="categorie categorie2">article 1</div>
<div class="categorie categorie2">article 2</div>
<div class="categorie categorie3">article 3</div>
<div class="categorie categorie3">article 3</div>

【讨论】:

  • 它关闭了,但是在我想要的对面做,它显示了我没有选择的 div
  • 如何编辑使其显示我选择的类别的文章,并隐藏其余的div?
  • 是的,但我希望文章在加载时可见...然后我开始隐藏我没有选择的其余部分,或者我必须在加载时隐藏它们?
【解决方案3】:

按照你说的,我做了代码。请检查以下sn-p。

$('#selectleft').change(function()
{
  $('.article').addClass('deactive');
   var x = $('#selectleft').val();
   $('.'+x).removeClass('deactive');
});
.deactive{display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h1> select cotegories</h1>
<select  id="selectleft" >
     <option value="categorie">categorie</option>
         <option value="categorie1">sport</option>
         <option value="categorie2">movies</option>
         <option value="categorie3">news</option>


        </select>

<div class="article deactive categorie1">article 1 </div>
<div class="article deactive categorie1">article 2 </div>
<div class="article deactive categorie2">article 3 </div>
<div class="article deactive categorie2">article 4 </div>
<div class="article deactive categorie3">article 5 </div>
<div class="article deactive categorie3">article 6 </div>

【讨论】:

  • 只是想知道,这里为什么需要 Bootstrap 源文件?
  • 我只是为了更好的可见性或更好的 UI 而添加了@DeepakYadav。
  • 哈哈!如果你正确地看到我的代码,h1 样式会因为 bootsrap 而改变
  • 嘿嘿嘿! 哈哈!如果你删除它会发生什么?
  • 我已经说过了,我只为字体或其他样式添加了引导程序@DeepakYadav。你疯了还是怎么了?
【解决方案4】:
<script>
$('#selectleft').change(function()
{
   var x = $('#select').val();
   $('.x').hide();
});
</script>

【讨论】:

  • 兄弟你是不是很高 xD 检查答案,你好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
  • 2017-01-31
  • 1970-01-01
相关资源
最近更新 更多