首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:基于部分类名显示/隐藏多个元素

jQuery:基于部分类名显示/隐藏多个元素
EN

Stack Overflow用户
提问于 2012-07-11 16:19:59
回答 2查看 1.1K关注 0票数 0

我一直在想办法解决这个问题,我觉得我需要筛选还是找到?但是,我经历了很多次迭代,但还是没能确定下来.

我想要完成的事情:

  1. 选项从筛选项下拉列表中选择。
  2. 获取项的值,并使用匹配值的内部html显示span.itt-ii
  3. 从盖子开始上课。
  4. 使用相同的类显示p.ptext项,并隐藏其余的

我的标记看起来与以下内容类似:

代码语言:javascript
复制
<select name="filteritem" id="filteritem">
  <option value="">- Select One-</option>
  <option value="Feliformia"> Feliformia </option>
  <option value="Caniformia">Caniformia</option>
</select>

<span class="item-ii lid-34 bigtitle">Feliformia</span>
<span class="item-ii lid-2 bigtitle">Caniformia</span>

...

<p class="ptext lid-34 moderate-me">Stenoplesictidae</p>
<p class="ptext lid-34 moderate-me">Percrocutidae</p>
<p class="ptext lid-2 moderate-me">Amphicyonidae</p>
<p class="ptext lid-2 moderate-me">Canidae</p>

不知道是否值得,但到目前为止,我有这个.(不过,关于如何使它变得更好的建议将是很棒的.)

代码语言:javascript
复制
  $('select#filteritem').live('change', function() {
        var itemselection = $(this).val();

        if(itemselection == '') {
          $('span.itemii').show();
        } else {
          $('span.itemii').each(function() {
                $(this).hide();
                var itemtext = $(this).html();
                if(itemtext == itemselection) {
                   $(this).show();
                }
          });
        }
  });
}
EN

回答 2

Stack Overflow用户

发布于 2012-07-11 16:31:33

我几乎会把选择改为这样

代码语言:javascript
复制
<option value="34"> Feliformia </option>

代码会很简单

代码语言:javascript
复制
 $('select#filteritem').live('change', function() {
  var itemselection = $(this).val();
  $('.ptext').hide();
  $('span.itemii').hide();
  if(itemselection == '')
     $('span.itemii').show();
  else
     $('.lid-' + itemselection).show();
 });
票数 0
EN

Stack Overflow用户

发布于 2012-07-11 17:37:58

要使它工作,你需要做大量的工作,你需要了解逻辑是如何工作的。

最后,这就是你需要做的。

请参考我的现场演示

HTML:

代码语言:javascript
复制
<select name="filteritem" id="filteritem">
  <option value="">-Select One-</option>
  <option value="Feliformia">Feliformia</option>
  <option value="Caniformia">Caniformia</option>
</select>
<br/>
<span class="item-ii lid-34 bigtitle">Feliformia</span>
<span class="item-ii lid-2 bigtitle">Caniformia</span>

...
<br/>
<p class="ptext lid-34 moderate-me">Stenoplesictidae</p>
<p class="ptext lid-34 moderate-me">Percrocutidae</p>
<p class="ptext lid-2 moderate-me">Amphicyonidae</p>
<p class="ptext lid-2 moderate-me">Canidae</p>​

JQuery:

代码语言:javascript
复制
$('select#filteritem').change(function() {
    var itemselection = $(this).val();
    if (itemselection == "") {
        $('span.item-ii').show();
        $('p.ptext').show();
    } else {
        $('span.item-ii').each(function() {
            if (itemselection == $(this).text()) {
                $('span.item-ii').hide();
                $(this).show();
                var classList =$(this).attr('class').split(/\s+/);
                $.each(classList, function(index, item) {
                    if ($('p.ptext').hasClass(item)) {
                        $('p.ptext').hide();
                        $('p.ptext.'+item).show();
                    }
                });
            }
        });
    }
});​

CSS:

代码语言:javascript
复制
.item-ii {
    display:block;
}​
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11437028

复制
相关文章

相似问题

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