Более чистый способ выбора нескольких возможных значений атрибутов?
Есть ли возможность в jQuery выбрать несколько возможных значений атрибутов без использования списка селекторов, разделенных запятыми.
Итак, вместо:
#list1 > option[value="1"], #list1 > option[value="2"], etc
Что-то вроде:
#list1 > option[value="1"|value="2"], etc
Ответы
Ответ 1
Не то, чтобы я знал. Самый чистый способ, которым я могу это сделать, - сначала выбрать, используя общие элементы для всех элементов, а затем просто .find()
или .filter()
значения OR.
Что-то вроде
$('#list1 > option[value]')
.filter('[value="1"],[value="2"]')
;
Ответ 2
Вы можете создать пользовательскую функцию jQuery следующим образом:
$.fn.filterAttrVals = function (attr, vals) {
var filter = '[' + attr + '="' + vals.split(',').join('"],[' + attr + '="') + '"]';
return this.filter(filter);
};
В качестве примера вы можете использовать его следующим образом:
$('#list1 > option').filterAttrVals('value','1,2');