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

时间:2016-06-03 16:59:04

标签: javascript jquery

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

<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>

我不知道如何启动它,这就是我想要做的事情。(我在相关页面的不同标签中也有两个。

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

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

4 个答案:

答案 0 :(得分:2)

如果我理解正确,如果该选择列表有1个或更少的选项,您希望从div中删除整个选择列表。所以这就是我做的工作:

<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>

$(document).ready(function () {
    var allSelects = $('.dropdown-filter-div > select');

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

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

答案 1 :(得分:0)

尝试:

var $el = $('.dropdown-filter > select > option'); 
console.log($el.length); 
if($el.length == 1){
    $el.parent().hide(); 
}

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

答案 2 :(得分:0)

if ($(".dropdown-filter-div > select > option").length == 1 ) {
  $(".dropdown-filter-div > select).hide();
});

答案 3 :(得分:0)

您可以使用以下代码

var items = $('.dropdown-filter-div').find('select');
    $.each(items, function (index, item) {
        if (item.options.length == 1)
            $(item).hide();
    });