A combinação de AND e OR em seletores jQuery

votos
1

Eu tenho um seletor jQuery com seguinte sintaxe:

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

Então, isso coloca uma funcionalidade de clique específico para todos os componentes que são imagem tipo de e não tem classe xyzClass.

***** Eu modifiquei a questão para refletir as últimas alterações, algumas das respostas abaixo estão corretas para a versão anterior, mas não podem exercer correto para versão modificada. Desculpas para isso.

Precisamos de uma condição OR com condição de classe. Tal que qualquer componente que é entrada tendo como tipo imagem, deve ser seleccionado SE

  1. Não classe é xyzClassOR
  2. id contém corda someIdString

Você poderia por favor me ajude com a modificação no selector existente?

Felicidades.

Publicado 27/08/2009 em 06:24
fonte usuário
Em outras línguas...                            


3 respostas

votos
2
$(":image:not(.xyzClass),:image[onclick*='someSpecificFunctionality']");
Respondeu 27/08/2009 em 06:29
fonte usuário

votos
2

resposta Atualizado

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

Para a sua pergunta atualizado, embora este não é otimizado Eu recomendaria especificar, tanto quanto você puder.

Resposta original:

function someSpecificFunctionality() {
}

$(els)

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


$(els).filter(function() {

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

});
Respondeu 27/08/2009 em 06:29
fonte usuário

votos
0

para fazer um "OU" use uma vírgula:

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

Eu não sei como você está definindo o onclick no entanto: é-o em seu HTML ou é adicionado por meio de programação?

Respondeu 27/08/2009 em 06:27
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more