
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.
