0

我有一组是/否下拉菜单,我想选择所有值为是的选择元素。

<select name="foo1">
  <option value="yes">Yes</option>
  <option value="no">No</option>
</select>
<select name="foo2">
  <option value="yes">Yes</option>
  <option value="no">No</option>
</select>
<select name="foo3">
  <option value="yes">Yes</option>
  <option value="no">No</option>
</select>

我想要一个 JQuery 选择器,它返回当前处于“是”状态的选择节点的子集。我意识到我可以对 filter() 进行简单的调用,但我更愿意在选择器中完成所有操作。

$('#myform select').filter(function(k,v){return v.value == 'yes';})

提前致谢。

4

4 回答 4

2
$('#myform select option[value="yes"]:selected').parent()

看演示

于 2013-02-22T21:05:05.930 回答
1

it would be

$('#form select:has(option[value=yes]:selected)')

It will get all select that has option:selected with a value=yes

FIDDLE

于 2013-02-22T21:11:21.857 回答
1

如果您希望它高效,您应该坚持使用filter,但您可以创建一个可以直接在选择器中使用的自定义过滤器:

$.expr[':'].value = $.expr.createPseudo(function (value) {
    return function (el) {
        return el.value == value;
    };
});

按如下方式使用它:

$('select:value(yes)');

这是小提琴:http: //jsfiddle.net/Eb3hp/

于 2013-02-22T21:06:35.310 回答
0
$('#myform select[value=yes]');
于 2013-02-22T21:03:08.987 回答