Подтвердить что ты не робот

Более чистый способ выбора нескольких возможных значений атрибутов?

Есть ли возможность в jQuery выбрать несколько возможных значений атрибутов без использования списка селекторов, разделенных запятыми.

Итак, вместо:

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

Что-то вроде:

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

Ответ 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');