jQuery是否有可能通过多个可能的属性值进行选择,而不必使用逗号分隔的选择器列表。
所以代替:
#list1 > option[value="1"], #list1 > option[value="2"], etc
类似的东西:
#list1 > option[value="1"|value="2"], etc
答案 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');