2016-12-29 12 views
6

muszę ukryć wszystkie opcje gdy atrybut wartość wynosi> 23JS - Ukrywanie opcji opartych na atrybucie wartości

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

ale ten kod nie działa:

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

Dziękujemy za Twoje pomysły!

+0

Jeśli dobrze pamiętam, nie wszystkie przeglądarki pozwalają ukryć opcje – epascarello

+0

chcesz ukryć wszystkie opcje, jeśli użytkownik wybierz opcja o wartości = 23? –

+0

Możliwy duplikat [jQuery: Zaznaczanie wszystkich elementów, dla których atrybut jest większy niż wartość] (http://stackoverflow.com/questions/2613648/jquery-selecting-all-elements-where-attribute-is-greater-than-a -value) – damienfrancois

Odpowiedz

4

Można użyć jquery filter() na opcji które mają atrybut value - zobacz demo poniżej:

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

4

Spróbuj tego, używając .filter(). Musisz przekonwertować atrybut wartość do liczby używając Number() lub +$(this)

$(function() 
 
{ 
 
    $(".cat-search-pb option").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>

+1

Może chcieć zmienić ciąg na liczbę. Liczba() lub + $ (to) .... – epascarello

Powiązane problemy