1

计算选择选项很容易

$('.myselect option').length;

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

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

.myselect即在所有具有2到4个选项的s上运行jquery方法(在本例中隐藏) 。

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

4

3 回答 3

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();
于 2013-11-07T04:43:44.553 回答
0

尝试使用slice()之类的,

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

注意IE不允许您操作option elements directly. 为此,您必须从选择中选择remove all它们。option elementsrepopulate

于 2013-11-07T04:34:57.933 回答
-1

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

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

于 2013-11-07T04:35:43.520 回答