No podemos acceder al elemento div con ID "test: abc" en código JS usando jQuery.
<div id="test:abc">
$('#test:abc')
Funciona bien sin colon. No tenemos control sobre la generación de ID, ya que se genera automáticamente en subformularios de Trinidad porque adjunta ID de subformulario :
a cada elemento dentro de él.
Respuestas:
Necesitas escapar del colon usando dos barras diagonales:
fuente
En breve
$(document.getElementById("test:abc"))
es lo que debes usar.Explicación : Además de la ganancia de velocidad (ver más abajo), es más fácil de manejar.
Ejemplo: digamos que tiene una función
Velocidad / sincronización
Eche un vistazo a este jsbin que prueba y compara la velocidad de los métodos de selección de ID con dos puntos.
necesitas abrir tu consola firebug para obtener los resultados.
Lo probé con firefox 10 y jquery 1.7.2
básicamente hice una selección de 10.000 veces de un div con dos puntos en la identificación, con los diferentes métodos para lograrlo. Luego comparé los resultados con una selección de ID sin dos puntos, los resultados son bastante sorprendentes.
tiempo restante en el método selector de ms derecho
especialmente
viene un poco como sorpresa
fuente
$("#annyoing\\:colon")
, 29$("[id='annyoing:colon']")
, 5$(document.getElementById("annyoing:colon"))
, 8$("#nocolon")
, 31$("[id='nocolon']")
$("#annoying\\:colon")
o$(document.getElementById("annoying:colon"))
?Obviamente, se está tropezando con los dos puntos, porque jQuery está tratando de interpretarlo como un selector. Intenta usar el selector de atributos id.
fuente
Simplemente usaría
document.getElementById
y pasaría el resultado a lajQuery()
función.fuente
usa dos barras invertidas
\\
MANIFESTACIÓN
como está escrito aquí
Referencia
fuente
Refiriéndome a la respuesta de Toskan, actualicé su código para hacerlo más legible y luego lo envié a la página.
Aquí está el enlace de jbin: http://jsbin.com/ujajuf/14/edit .
Además, lo ejecuté con más iteraciones
Aún más:
fuente
intenta usar
$('#test\\:abc')
fuente
Esta sintaxis
$('[id="test:abc"]')
funcionó para mí. Estoy usandoNetbeans 6.5.1
& genera componentes con unid
que contiene a: (colon)
. Probé el\\
& the\3A
pero ninguno de ellos funcionó.fuente
Uso
$('[id=id:with:colon]')
.fuente