A cleaner way to select by multiple possible attribute values?

你离开我真会死。 提交于 2019-12-17 06:51:50

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!