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

Javascript 如果选择选项包含一个条目,则jQuery隐藏下拉框,javascript,jquery,Javascript,Jquery,如果选择选项只包含一个条目,我试图隐藏一个下拉框。(如下所示)在这种情况下,我只想隐藏第一个下拉框,而第二个下拉框应保持可见 <div class="dropdown-filter-div"> <select> <option value="">Gifts/Offers</option> </select> </div> <div class="dropdown-filter-div"> <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>
编辑

移动版(需要一个用户代理切换器)用一个流行的移动用户代理来查看问题

目前正在使用@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的末尾,但它不起作用@金日成

试试看:

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

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

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

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

2.
礼品/优惠
1.
3.
礼品/优惠
礼品/优惠

$(文档).ready(函数(){
var allSelects=$('.dropdown filter div>select');
allSelects.each(函数(){

如果(this.length如果我理解正确,如果选择列表有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>

2.
礼品/优惠
1.
3.
礼品/优惠
礼品/优惠

$(文档).ready(函数(){
var allSelects=$('.dropdown filter div>select');
allSelects.each(函数(){

如果(this.length您可以使用以下代码

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

您可以使用以下代码

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

我已将该代码添加到我的网站,但它不起作用?你有useragent switcher吗?@Scott你检查了小提琴了吗?如果它在你的网站上不起作用,肯定还有其他原因。上面的代码应该在jQuery支持的所有浏览器中都能起作用。这是一个wordpress网站语法必须更改我认为是移动版本(需要一个带有流行移动用户代理的用户代理切换器jQuery应该可以在您的手机上运行。由于此代码是在页面加载时执行的,因此在应用代码之前,请确保DOM已准备就绪。我已将该代码添加到我的网站,但它不起作用?您有useragent切换器吗?@Scott是否检查了小提琴?如果它在您的网站上不起作用,则re必须是其他的。上面的代码应该可以在jQuery支持的所有浏览器中运行。这是一个wordpress站点,语法必须更改,我认为是移动版本(需要一个带有流行移动用户代理的用户代理切换器jQuery应该可以在您的移动设备上运行。由于此代码是在页面加载时执行的,因此在应用代码之前,请确保DOM已准备就绪。我已相应地更新了代码。如果您只想隐藏第一个代码,则可以添加以下内容:var index=0;//上面的allselects.each。。。;然后在if中添加以下内容:if(this.length)我已相应地更新了代码。如果只想隐藏第一个,则可以添加以下内容:var index=0;//以上所有选择.each…;然后在if中添加以下内容:if(this.length