Сочетание AND и OR в селекторах jQuery - PullRequest
1 голос
/ 27 августа 2009

У меня есть селектор jQuery со следующим синтаксисом:

$('input[type=image]').not('.xyzClass').click(function{
    //some functionality
});

Таким образом, это устанавливает специальные функции щелчка для всех компонентов, которые имеют тип изображения и не имеют класса xyzClass.

***** Я изменил вопрос, чтобы отразить последние изменения, некоторые из приведенных ниже ответов верны для предыдущей версии, но могут быть неверными для модифицированной версии. Извиняюсь за это.

Нам нужно условие ИЛИ с условием класса. Такой, что Любой компонент, который является «входным» и имеет тип изображения, должен быть выбран IF

  1. класс не xyzClass ИЛИ
  2. идентификатор содержит строку someIdString

Не могли бы вы помочь с модификацией в существующем селекторе?

Приветствие.

Ответы [ 3 ]

2 голосов
/ 27 августа 2009

Обновленный ответ

$('*:not(.xyzClass)[id*=containsThisValue]')

Для вашего обновленного вопроса, хотя он не оптимизирован, я бы рекомендовал указать как можно больше.

Оригинальный ответ:

function someSpecificFunctionality() {
}

$(els)

.click(someSpecificFunctionality)
.data('someSpecificFunctionality', true)


$(els).filter(function() {

    return 
        $(this).not('.xyzClass') && 
        $(this).data('someSpecificFunctionality') == true

});
2 голосов
/ 27 августа 2009
$(":image:not(.xyzClass),:image[onclick*='someSpecificFunctionality']");
0 голосов
/ 27 августа 2009

для ввода "ИЛИ" используйте запятую:

$('input[type=image]')
    .not(".xyzClass,[onclick*='someSpecificFunctionality()']")
    .click(...);

Я не уверен, как вы определяете onclick, хотя: это в вашем HTML или добавлено программно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...