首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery如果选择选项包含一个条目,则隐藏下拉框

jQuery如果选择选项包含一个条目,则隐藏下拉框
EN

Stack Overflow用户
提问于 2016-06-04 00:59:04
回答 4查看 1.1K关注 0票数 0

如果选择选项只包含一个条目,我会尝试隐藏下拉框。(如下所示)在这种情况下,我只想隐藏第一个下拉框,而第二个框应该保持可见。

代码语言:javascript
复制
<div class="dropdown-filter-div">
<select>
<option value="">Gifts/Offers</option>
</select>
</div>

<div class="dropdown-filter-div">
<select>
<option value="">Gifts/Offers</option>
<option value="Gift">Gift</option>
<option value="Gift">Gift</option>
<option value="Gift">Gift</option>
</select>
</div>

我不知道如何开始,这是我想做的。(我在有问题的页面上的不同选项卡中也有其中的两个。

代码语言:javascript
复制
if ($(".dropdown-filter-div > select > option")) contains 1 option {
  $(".dropdown-filter-div > select).hide();
});

编辑

http://mobilereactor.co.uk/shop/mobile-phones/apple-iphone-6s-plus-128gb-rose-gold-deals/手机版(需要一个用户代理切换器)用一个流行的移动用户代理来查看问题。

当前使用@Kim Gysen

代码语言:javascript
复制
jQuery(document).ready(function($) {
  var $el = $('.dropdown-filter > select > option'); 
  console.log($el.length); 
  if($el.length == 1){
      $el.parent().hide(); 
  }
}); 

在jq-assets.js的末尾,但它不工作。@Kim Gysen

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-04 01:15:22

如果我理解正确的话,您希望从div中删除整个选择列表,如果该选择列表有1个或更少的选项。为了让它正常工作,我做了以下工作:

代码语言:javascript
复制
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
    <script src="index.js"></script>
</head>
<body>
    <div class="dropdown-filter-div">
        <select>
            <option value="">2</option>
            <option value="">Gifts/Offers</option>
        </select>
    </div>

    <div class="dropdown-filter-div">
        <select>
            <option value="">1</option>
        </select>
    </div>

    <div class="dropdown-filter-div">
        <select>
            <option value="">3</option>
            <option value="">Gifts/Offers</option>
            <option value="">Gifts/Offers</option>
        </select>
    </div>
</body>

代码语言:javascript
复制
$(document).ready(function () {
    var allSelects = $('.dropdown-filter-div > select');

    allSelects.each(function(){
        if(this.length <= 1){
            $(this).hide();
        }
    });
});

我可能把你的答案做得太过分了,但这将只选择那些小于或等于1选项的选择列表,并隐藏它们。

票数 2
EN

Stack Overflow用户

发布于 2016-06-04 01:04:34

尝试:

代码语言:javascript
复制
var $el = $('.dropdown-filter > select > option'); 
console.log($el.length); 
if($el.length == 1){
    $el.parent().hide(); 
}

https://jsfiddle.net/atg5m6ym/5536/

票数 0
EN

Stack Overflow用户

发布于 2016-06-04 01:10:47

代码语言:javascript
复制
if ($(".dropdown-filter-div > select > option").length == 1 ) {
  $(".dropdown-filter-div > select).hide();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37619833

复制
相关文章

相似问题

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