Параметры выбора фильтра jQuery - PullRequest
1 голос
/ 15 августа 2011

Можно ли отфильтровать определенные параметры выбора?

У меня есть код:

<select id="adcategory" name="adcategory">
    <option value="">Select</option>
    <option value="25" class="dropdownparentcategory">Florida Atlantic University</option>

    <option value="26">- Books </option>
    <option value="27">- Electronics</option>
    <option value="28">- For Rent</option>

    <option value="17" class="dropdownparentcategory">Florida International University</option>

    <option value="18">- Books</option>
    <option value="19">- Electronics</option>
    <option value="20">- For Rent</option>

    <option value="1" class="dropdownparentcategory">Florida Tech</option>
    <option value="2">- Books</option>
    <option value="3">- Electronics</option>
    <option value="7">- For Rent</option>


</select>

Так, если переменная, например, $school = Florida Atlantic University, чем показывать только те опции, до следующей школьной категории (.dropdownparentcategory), то в этом случаеони будут только:

<select id="adcategory" name="adcategory">
    <option value="">Select</option>

    <option value="26">- Books </option>
    <option value="27">- Electronics</option>
    <option value="28">- For Rent</option>

</select>

Как вы можете видеть на этом изображении:

enter image description here

Возможно ли создать с помощью jQuery?

Ответы [ 4 ]

8 голосов
/ 15 августа 2011

Это выглядит как потенциально плохой дизайн.Я бы предложил перейти к тегам <optgroup> [MDN] для группировки выпадающих элементов:

<select>
    <optgroup label="Florida Atlantic University">
        <option value="1">Text</option>
        <option value="2">Text</option>
        <option value="3">Text</option>
    </optgroup>
    <optgroup label="Florida Tech">
        <option value="4">Text</option>
        <option value="5">Text</option>
        <option value="6">Text</option>
    </optgroup>
</select>

Тогда это легковыбрать дочерние элементы;

$('optgroup[label*="' + yourSchoolName + '"]').find('option')
2 голосов
/ 15 августа 2011

Я бы сказал, добавьте классы для всех ваших элементов, классифицируя

<option class="js_atl" value="25" />
<option class="js_atl" value="26" />
<option class="js_atl" value="27" />
<option class="js_int" value="28" />
<option class="js_int" value="29" />

так что вы можете использовать ur $ school = "Университет Флориды Атлантик" показать или добавить или что-либо еще с $(".js_atl") для другой категории $(".js_int"), которая возвращает массив выбранных элементов в этой категории класса.

надеюсь, это поможет.

2 голосов
/ 15 августа 2011

Конечно.

$("#adcategory option:contains('Florida International University')").nextUntil(".dropdownparentcategory")

http://jsfiddle.net/Xeon06/YEeMH/

0 голосов
/ 15 августа 2011

Вы должны быть в состоянии применить стиль «display: none;» на теги, которые вы не хотите видеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...