JQuery: селектор, который содержит один текст, но не содержит другие - PullRequest
3 голосов
/ 14 апреля 2010

Извините, если на этот вопрос легко ответить, но я немного новичок в JQuery и у меня сжатые сроки.

Я ищу селектор для элементов текстового поля, которые имеют этот формат:

id = "FixedName_#"

«FixedName» всегда будет «FixedName», но я хочу найти элементы только с положительным знаком #. Поэтому я хотел бы найти «FixedName_1» и «FixedName_2», например, но пропустить «FixedName_-1» и «FixedName_-2».

Спасибо!

Обновление В итоге получилось что-то вроде этого (изменил мой фактический код для отображения здесь, поэтому не уверен, работает ли он так, как показано):

$("input[id*='FixedName_']").each(function() {
    if ($(this).attr("id").charAt(10) == "-") {
        //Do something.
    } else{
        //Do something else.
    }
});

Ответы [ 6 ]

2 голосов
/ 14 апреля 2010

Я не уверен, что вы можете сделать это с одним селектором. Я бы выбрал все элементы с идентификатором, начиная с FixedName_, например:

$("[id|=FixedName_#]")

Затем вы можете просмотреть результаты и проверить значение после #.

РЕДАКТИРОВАТЬ: Попробуйте это:

$("[id^=FixedName_#]").each(function(){

var controlNum = parseInt(this.id.replace('FixedName_#',''));
  if (controlNum >= 0){
    //......
  }
});
1 голос
/ 14 апреля 2010

Здесь хранятся элементы, для которых их идентификатор не содержит знака -

var elems = $('input:not([id*=-])');

alert(elems.size());
1 голос
/ 14 апреля 2010

После добавления этого селектора атрибута , вы можете сделать это:

$("*:regex(id, ^FixedName_\\d+$)")

Также будет соответствовать FixedName_0.

1 голос
/ 14 апреля 2010

Это может помочь

Селектор Regex для jQuery

0 голосов
/ 14 апреля 2010

Есть ли вероятность того, что код, который генерирует текстовые поля, может установить атрибуты класса, такие как class = "положительный / отрицательный" на основе значения идентификатора? Чтобы можно было выбрать $ ('. Positive') ...

0 голосов
/ 14 апреля 2010

Вы можете попробовать добавить класс "FixedName", а затем добавить rel числа, чтобы вы могли использовать это: if ($ ('. FixedName'). Attr ('rel')> 0) {... }

...