子计数的Jquery选择器

时间:2013-11-07 04:28:56

标签: jquery jquery-selectors

计算选择选项为easy

$('.myselect option').length;

但是有一个速记选择器可以过滤大小吗?例如做这样的事情?

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

即在所有.myselect上使用2到4个选项运行jquery方法(在此实例中隐藏)。

编辑:澄清 - 我想要作为选择器根据子计数过滤“父”元素。即不想隐藏选项2-4,而是隐藏2到4项之间的选择字段。类似的任务是将一个类添加到具有2-4个LI的UL等。如果原始问题不明确,请抱歉。

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

尝试使用slice()之类的,

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

注意 IE 不允许您操纵option elements directly。为此,您必须remove all来自选择option elementsrepopulate。{/ p>

答案 2 :(得分:-1)

您还可以使用jQuerys eq()函数查找特定索引。

http://api.jquery.com/eq/