JQuery выбрать параметры с несколькими значениями - PullRequest
1 голос
/ 06 сентября 2010

В селекторе, как я могу проверить, содержит ли значение атрибута «a», «b» или «c» в одной строке?Можете ли вы сделать, например: $('input[name]=a|b|c')?Ну, я проверил это, и это не сработало.

Ответы [ 2 ]

1 голос
/ 06 сентября 2010
$("input[name='a'],input[name='b'],input[name='c']")

Если эта строка кажется слишком длинной или избыточной, вы можете создать селектор, например:

var names = ['a','b','c'];
var selector = [];
for (var i=0; i<names.length; i++) {
   selector.push("input[name='" + names[i] + "']");
}

$(selector.join(','))
0 голосов
/ 06 сентября 2010

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

$('#somecontainer input').filter( function(){
  return this.name.match(/a|b|c/);
});

Еще один из многих способов сделать это - собрать объект jQuery с .add(). И если вы действительно имеете в виду содержит , а не равно , не забудьте использовать name*=a.

$('input[name*=a]')
  .add('input[name*=b]')
  .add('input[name*=c]')
  .add('<p>something</p>') // you can .add() almost anything. useful.
...