JS - 基于value属性隐藏选项

时间:2016-12-29 16:50:19

标签: javascript jquery html jquery-selectors

当value属性为>时,我需要隐藏所有选项23

<select id="category_ids" class="cat-search-pb" multiple >
    <option value="20">Condo for Sale</option>
    <option value="24">&nbsp;&nbsp;- Jomtien</option>
    <option value="25">&nbsp;&nbsp;- Bang Saray</option>
    <option value="21">Condo for Rent</option>
    <option value="22">House for Sale</option>
    <option value="23">House for Rent</option>
    <option value="14">Land</option>
    <option value="15">Commercial</option>
    <option value="18">New Condo Projects</option>
    <option value="19">New House Projects</option> 
</select>

但是这段代码不起作用:

$(document).ready(function () {
   $(".cat-search-pb option[value>23]").closest('option').hide();
});

感谢您的想法!

3 个答案:

答案 0 :(得分:4)

使用.filter()尝试此操作。您必须使用Number()+$(this)

将value属性转换为数字

&#13;
&#13;
$(function() 
{
    $(".cat-search-pb option").filter(function() 
    {
        return +$(this).val() > 23;
    }).hide();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="category_ids" class="cat-search-pb" multiple>
    <option value="20">Condo for Sale</option>
    <option value="24">&nbsp;&nbsp;- Jomtien</option>
    <option value="25">&nbsp;&nbsp;- Bang Saray</option>
    <option value="21">Condo for Rent</option>
    <option value="22">House for Sale</option>
    <option value="23">House for Rent</option>
    <option value="14">Land</option>
    <option value="15">Commercial</option>
    <option value="18">New Condo Projects</option>
    <option value="19">New House Projects</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:4)

您可以在具有value属性的选项上使用jquery filter() - 请参阅下面的演示:

$(document).ready(function() {
  $(".cat-search-pb option[value]").filter(function() {
    return +$(this).val() > 23;
  }).hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="category_ids" class="cat-search-pb" multiple>

  <option value="20">Condo for Sale</option>
  <option value="24">&nbsp;&nbsp;- Jomtien</option>
  <option value="25">&nbsp;&nbsp;- Bang Saray</option>
  <option value="21">Condo for Rent</option>
  <option value="22">House for Sale</option>
  <option value="23">House for Rent</option>
  <option value="14">Land</option>
  <option value="15">Commercial</option>
  <option value="18">New Condo Projects</option>
  <option value="19">New House Projects</option>
</select>

答案 2 :(得分:0)

我假设你想听取选择的更改,最初显示它们。在这种情况下,您可以使用$.change()侦听器

$( ".cat-search-pb" ).change(function(e) {
  if (e.target.value > 23) {
    $(e.target).hide()
  }
 });

https://jsfiddle.net/qee4qccv/

https://api.jquery.com/change/