JQuery, CSS e ids (X)HTML
24 Mar 2007Em um projeto que estou trabalhando no momento estou usando o JQuery, porém me deparei com um problema ao tentar utilizar o seu $()
com elementos que contenham ids com caracteres como ponto e dois-pontos, que são caracteres válidos em ids.
Preparei um arquivo de testes e postei o problema na lista do JQuery, e em alguns minutos obtive entre as respostas uma que apontava que já existia um bug report para este problema (aqui entra a lição de sempre procurar pelo problema no bug tracker do projeto!), que até agora ainda não foi solucionado, existe uma sugestão de patch que altera a expressão regular do CSS selector do JQuery para uma solução parecida com o que já existe na especificação do CSS…
<style>
#test.x { background-color:green; color:yellow; }
</style>
...
<p id="test.x">P with id 'test.x'.</p>
O código acima não irá funcionar como esperado, ele na verdade seleciona o elemento com id test
e classe x
, para ter o efeito desejado deve-se usar #test\.x
, ou seja, “escapa”-se o ponto, o que informa ao interpretador CSS para cancelar a busca pela classe.
A solução temporária é eu aplicar o patch e compilar a minha própria versão do JQuery…