一种更简洁的方法来选择多个可能的属性值?

时间:2011-03-29 11:28:58

标签: jquery attributes jquery-selectors

jQuery是否有可能通过多个可能的属性值进行选择,而不必使用逗号分隔的选择器列表。

所以代替:

#list1 > option[value="1"], #list1 > option[value="2"], etc

类似的东西:

#list1 > option[value="1"|value="2"], etc

2 个答案:

答案 0 :(得分:39)

不是我知道的。我能想到的最干净的方式是首先选择使用所有项目中的公共元素,然后只需.find().filter() OR值。

这样的东西
$('#list1 > option[value]')
    .filter('[value="1"],[value="2"]')
    ;

答案 1 :(得分:2)

你可以像这样制作一个自定义的jQuery函数:

$.fn.filterAttrVals = function (attr, vals) {
    var filter = '[' + attr + '="' + vals.split(',').join('"],[' + attr + '="') + '"]';
    return this.filter(filter);
};

对于您的示例,您可以通过以下方式使用它:

$('#list1 > option').filterAttrVals('value','1,2');