2017-05-09 87 views
0

我只想隐藏那些选择了空值的选择框。我有以下HTML和jQuery只隐藏那些选择了空值的选择框

<div class="form-item"> 
<select name="select" class="date-month"> 
<option value="1">Jan</option> 
<option value="2">Feb</option> 
<option value="3">Mar</option> 
<option value="4">Apr</option> 
<option value="5" selected="selected">May</option> 
<option value="6">Jun</option> 
<option value="7">Jul</option> 
<option value="8">Aug</option> 
</select> 
</div> 
<div class="form-item"> 
<select name="select" class="date-month"> 
<option value="" selected="selected"></option> 
<option value="1">Jan</option> 
<option value="2">Feb</option> 
<option value="3">Mar</option> 
<option value="4">Apr</option> 
<option value="5">May</option> 
<option value="6">Jun</option> 
<option value="7">Jul</option> 
<option value="8">Aug</option> 
</select> 
</div> 

对于我使用下面的代码

$('.date-month option').each(function() { 
    if (this.selected) 
     $(this).parent().hide(); 
    else 
     $(this).parent().show(); 
}); 

,但它不工作。

回答

1

$(document).ready(function() { 
 
      $('.date-month').each(function() { 
 
       if ($(this).val()=='') 
 
        $(this).hide(); 
 
        
 
      }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-item"> 
 
<select name="select1" class="date-month"> 
 
<option value="">select</option> 
 
<option value="1">Jan</option> 
 
<option value="2">Feb</option> 
 
<option value="3">Mar</option> 
 
<option value="4">Apr</option> 
 
<option value="5" selected="selected">May</option> 
 
<option value="6">Jun</option> 
 
<option value="7">Jul</option> 
 
<option value="8">Aug</option> 
 
</select> 
 
</div> 
 
<div class="form-item"> 
 
<select name="select2" class="date-month"> 
 
<option value="">select</option> 
 
<option value="1">Jan</option> 
 
<option value="2">Feb</option> 
 
<option value="3">Mar</option> 
 
<option value="4">Apr</option> 
 
<option value="5">May</option> 
 
<option value="6">Jun</option> 
 
<option value="7">Jul</option> 
 
<option value="8">Aug</option> 
 
</select> 
 
</div>

+0

谢谢,但因为第二个选择框中选择一个空值则隐藏所有的选择框。我想隐藏那些选择了空值的选择框。 – John

+0

@John你的意思是,在这种情况下,第二个选择框应显示,第一个应该隐藏..对吗? – Bhaskar

+0

对。我想隐藏所有选择了空值的选择框。 – John

0

可以使用atrribute selector发现有一个选择的价值元素:

$('.date-month option[selected="selected"]').parent().hide(); 

显示/隐藏选择:

$('.date-month').each(function() { 
    if ($(this).find('option[selected="selected"]').length>0) { 
     $(this).hide(); 
    } else { 
     $(this).show(); 
    } 
    }); 
+0

谢谢,但它隐藏了所有的选择框,因为在第二个选择框中选择了空值。我想隐藏那些选择了空值的选择框。 – John

0

一号线应该是足够:

$('.date-month option[selected="selected"]').hide(); 

https://jsfiddle.net/wh27868m/1/

+0

谢谢,但它隐藏了所有的选择框,因为在第二个选择框中选择了空值。我想隐藏那些选择了空值的选择框。 - 约翰刚刚编辑 – John