Pergunta

Eu preciso reask minha velha questão, eu provavelmente should pediram-lo em 01:00: P

Parece que alguns atributos não estão sendo encontrados usando seletor de atributo da jQuery:

$("*[some=value]");

Até agora, parece que eu não posso usar atributo action do formulário, e atributo src do img. Existe um lugar lista de atributos que não fazem o trabalho para que eu possa escrever seletores personalizados para eles?

Mais uma vez obrigado!


Editar: Ninguém parece acreditar que alguns seletores não funcionam como esperado. Veja este exemplo: Em neste site (que tem jQuery 1.3 nele por firebugging) há uma forma que se parece isto:

<form style="display: inline;" method="get" action="list">

(seu redor na lista suspensa 'search downloads atuais'). Se você firebug aberto e tentar este selector:

$("form[action=list]"); 

Você não será capaz de selecionar o formulário. Não há nada de especial sobre o atributo action. O mesmo vale para o src da imagem do logotipo na página:

<img alt="Logo" src="/p/aost/logo?logo_id=1238551994"/>

O seletor que não funciona é a seguinte:

$("img[src=/p/aost/logo?logo_id=1238551994");

Claro, eu posso fazer partidas curinga, que não é o que eu sou depois.

Foi útil?

Solução

Não há "lista" de atributos não suportados porque não deve haver; este é um bug no jQuery.

Aqui estão os bilhetes em aberto sobre isso:

Aparentemente o denominador comum entre os insetos é que jQuery está comparando o selector string que você especificar contra a URL completa em oposição ao atributo real de ação / src como é definido no HTML. Isso explica por que a attributeEndsWith ou o attributeContains seletores fazer o trabalho neste caso.

Eu recomendaria apenas dando a forma / imagem de uma classe / ID e recebendo logo com isso.

Outras dicas

Tudo depende de qual versão jQuery você está usando.

Antes de 1.3, você poderia usar @ notação:

$("*[@name=value]")

Então, talvez acrescentando @ ajuda.

Além disso, você deve digitar o valor do atributo exatamente o mesmo que ele está definido na marcação - por exemplo, se você está tentando encontrar uma imagem com src="http://example.com/dog.jpg", não fazer isso, porque não vai funcionar:

$("img[src=dog.jpg")

como ele vai estar tentando encontrar imagens com src igualar para "dog.jpg", não contendo-o.

Se você deseja pesquisar atributos que definem apenas partes dele, eu sugiro a leitura do jQuery API Seletores página. Por exemplo, para obter todas as imagens do whit src contendo "dog.jpg", você poderia usar:

$("img[src*=dog.jpg]")

Da mesma forma, você pode encontrar elementos cujos atributos começar ou terminar com valores / cordas específicas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top