Não podemos acessar o elemento div com o ID "test: abc" no código JS usando o jQuery.
<div id="test:abc">
$('#test:abc')
Está funcionando bem sem dois pontos. Não temos controle sobre a geração de ID, pois ela é gerada automaticamente nos sub-formulários de Trinidad, porque anexa o ID do sub-formulário :
a todos os elementos dentro dele.
Respostas:
Você precisa escapar do cólon usando duas barras invertidas:
fonte
Em resumo
$(document.getElementById("test:abc"))
é o que você deve usar.Explicação : Além do ganho de velocidade (veja mais abaixo), é mais fácil de manusear.
Exemplo: Digamos que você tenha uma Função
Velocidade / Tempo
dê uma olhada neste jsbin que testa e compara a velocidade dos métodos de seleção de IDs com dois pontos
você precisa abrir o console do firebug para obter os resultados.
Eu testei com o firefox 10 e o jquery 1.7.2
basicamente, eu selecionei 10.000 vezes de uma div com dois pontos no id - com os diferentes métodos para alcançá-lo. Então eu comparei os resultados com uma seleção de ID sem dois pontos, os resultados são bastante surpreendentes.
tempo restante no método seletor ms à direita
especialmente
vem um pouco como uma surpresa
fonte
$("#annyoing\\:colon")
, 29$("[id='annyoing:colon']")
, 5$(document.getElementById("annyoing:colon"))
, 8$("#nocolon")
, 31$("[id='nocolon']")
$("#annoying\\:colon")
ou$(document.getElementById("annoying:colon"))
?Ele está disparando nos dois pontos, obviamente, porque o jQuery está tentando interpretá-lo como um seletor. Tente usar o seletor de atributo de identificação.
fonte
Eu apenas usaria
document.getElementById
e passaria o resultado para ajQuery()
funçãofonte
use duas barras invertidas
\\
DEMO
como está escrito aqui
Referência
fonte
Referindo-me à resposta de Toskan, atualizei seu código para torná-lo um pouco mais legível e, em seguida, enviar para a página.
Aqui está o link jbin: http://jsbin.com/ujajuf/14/edit .
Além disso, eu o executei com mais iterações
Ainda mais:
fonte
tente usar
$('#test\\:abc')
fonte
Essa sintaxe
$('[id="test:abc"]')
funcionou para mim. Estou usandoNetbeans 6.5.1
e gera componentes com umid
que contém um: (colon)
. Eu tentei o\\
& the,\3A
mas nenhum deles funcionou.fonte
Use
$('[id=id:with:colon]')
.fonte