Como buscar elements em jQuery por ID que contenha um ponto no nome

Olá,

Recentemente tive a necessidade de trocar todo o código javascript que estava usando prototype para jquery, porém surgiu o seguinte problema, todos os elementos que eu precisava buscar pelo ID tinha um ponto (.) no ID, por exemplo:

<input type=”text” id=”individualCustomer.name” value=”" />

Mas se você usar o jquery da forma normal para pegar este elemento pelo ID, você não vai conseguir, algo como:

<script type=”text/javascript”>

alert($(‘individualCustomer.name’).val());

</script>

Isso porque no jquery pensa que o que está depois do ponto, e uma classe (class).

Então como resolver?

Após vários testes, descobri a seguinte solução:

<script type=”text/javascript”>

alert($(‘individualCustomer\\.name’).val());

</script>

O que mudou? Bastou colocar duas barras antes do ponto, assim: “\\.”

Com isso você faz um escape da barra e deixa pro jquery trocar o que sobrar, que será “\.”, pelo próprio ponto.

Bem simples a solução, mas não tinha encontrada nada sobre isso no Google, e quase refatorei todo o código, mas o problema é que o próprio framework Wicket do Java, adiciona o ponto no namespace quando um componente faz parte de uma hierarquia, como uma caixa de texto de um form.

Deixe um comentário

Obs: A moderação de comentários está ativa e seu comentário pode demorar a aparecer. Não é necessário enviar seu comentário novamente.