2013-11-07 2 views
1

счетных вариантов выбора является easyJquery селектор на ребенке рассчитывать

$('.myselect option').length; 

Но есть сокращенная селектор, который фильтр по размеру? например, сделать что-то подобное?

$('.myselect').childCountBetween('option', 2, 4).hide(); 

т.е. работает метод JQuery (шкурку в данном случае) на всех .myselect с с от 2 до 4-х вариантов.

изменить: уточнить - я хочу как селектор, который фильтрует «родительские» элементы, основанные на подсчетах дочерних элементов. Т.е. не хотелось скрывать параметры 2-4, но чтобы скрыть поля выбора между 2 и 4 элементами. Аналогичные задачи должны были бы добавить класс к UL с 2-4 LI и т. Д. Извините, если исходный вопрос был неоднозначным.

ответ

3

Не уверен, что это будет решение, которое вы ищете, но они должны работать для того, что вы описали ...

$.fn.childCountBetween = function (child, min, max) { 
    return $(this).filter(function (id, el) { 
    var children = $(el).find(child).length; 
    return children > min && children < max; 
    }); 
}; 

$('.myselect').childCountBetween('option', 2, 4).hide(); 
+0

сладкий - благодаря Стивен! – ErichBSchulz

0

Попробуйте использовать slice() как,

$('.myselect option').slice(2, 4).hide(); 

Примечание: IE не позволяет манипулировать option elements directly. Для этого у вас есть remove all из option elements от выбранного и repopulate.

Смежные вопросы