问题
Is there a possibility in jQuery to select by multiple possible attribute values without having to use a comma separated list of selectors.
So in stead of:
#list1 > option[value="1"], #list1 > option[value="2"], etc
Something like:
#list1 > option[value="1"|value="2"], etc
回答1:
Not that I know of. The cleanest way I can think of doing this is to first select using the common elements across all items, then just .find()
or .filter()
the OR values out.
Something like
$('#list1 > option[value]')
.filter('[value="1"],[value="2"]')
;
回答2:
You can make a custom jQuery function like this:
$.fn.filterAttrVals = function (attr, vals) {
var filter = '[' + attr + '="' + vals.split(',').join('"],[' + attr + '="') + '"]';
return this.filter(filter);
};
For your example you could use it in the following way:
$('#list1 > option').filterAttrVals('value','1,2');
来源:https://stackoverflow.com/questions/5471775/a-cleaner-way-to-select-by-multiple-possible-attribute-values