最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - JS - hide options based on value attribute - Stack Overflow

programmeradmin7浏览0评论

I need to hide all options when the value attribute is > 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>

But this code does not work:

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

Thanks for your ideas!

I need to hide all options when the value attribute is > 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>

But this code does not work:

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

Thanks for your ideas!

Share Improve this question edited Sep 11, 2017 at 7:55 kukkuz 42.4k6 gold badges64 silver badges102 bronze badges asked Dec 29, 2016 at 16:50 Petr BenešPetr Beneš 756 bronze badges 3
  • If I remember right, not all browsers allow you to hide options – epascarello Commented Dec 29, 2016 at 16:54
  • You want to hide all options if the user select the option with value=23 ? – B. Assem Commented Dec 29, 2016 at 16:56
  • Possible duplicate of jQuery: Selecting all elements where attribute is greater than a value – damienfrancois Commented Dec 29, 2016 at 18:32
Add a ment  | 

3 Answers 3

Reset to default 4

You can use jquery filter() on the options that have the value attribute - see demo below:

$(document).ready(function() {
  $(".cat-search-pb option[value]").filter(function() {
    return +$(this).val() > 23;
  }).hide();
});
<script src="https://ajax.googleapis./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>

Try this, using .filter(). You must convert the value attribute to number using Number() or +$(this)

$(function() 
{
    $(".cat-search-pb option").filter(function() 
    {
        return +$(this).val() > 23;
    }).hide();
});
<script src="https://ajax.googleapis./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>

I'm assuming you would like to listen for changes to the selection, showing them all initially. In that case you can use the $.change() listener

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

https://jsfiddle/qee4qccv/

https://api.jquery./change/

发布评论

评论列表(0)

  1. 暂无评论