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

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

Таким образом, вместо:

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

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

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

Не то, что я знаю из. Самый чистый способ, которым я могу это сделать, – сначала выбрать, используя общие элементы для всех элементов, а затем просто .find() или .filter() значения OR.

Что-то вроде

 $('#list1 > option[value]') .filter('[value="1"],[value="2"]') ; 

Вы можете создать пользовательскую функцию jQuery следующим образом:

 $.fn.filterAttrVals = function (attr, vals) { var filter = '[' + attr + '="' + vals.split(',').join('"],[' + attr + '="') + '"]'; return this.filter(filter); }; 

Для вашего примера вы можете использовать его следующим образом:

 $('#list1 > option').filterAttrVals('value','1,2'); 
  • Изменение CSS-элемента дочернего элемента при зависании родительского элемента
  • Как выбрать конкретный элемент формы в jQuery?
  • addID в jQuery?
  • полный календарный выбор ячейки на мобильном устройстве?
  • Селектор jQuery для метки флажка
  • jQuery scrollTop не работает в Chrome, но работает в Firefox
  • Какие селектора CSS3 действительно поддерживают jQuery, например: nth-last-child ()?
  • jQuery .bind () vs. .on ()
  • Как работают PrimeFaces Selectors как в update = "@ (. MyClass)"?
  • jQuery выбрать все, кроме первого
  • Как я могу определить, возвращает ли селектор null?
  • Давайте будем гением компьютера.