Estoy usando jQuery y quiero verificar la existencia de un elemento en mi página. He escrito el siguiente código, pero no funciona:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
¿Cómo verifico la existencia del elemento?
lenght
lugar delength
; Es un error de ortografía..length
.(Como parece que no tengo suficiente reputación como para rechazar la respuesta ...)
Wolf escribió:
Si bien es cierto que llamar a la propiedad de longitud en un objeto indefinido o nulo hará que los navegadores fallen, el resultado de los selectores de jQuery ($ ('...')) nunca será nulo o indefinido. Por lo tanto, las sugerencias de código no tienen sentido. Usa una de las otras respuestas, tienen más sentido.
(Actualización 2012) Debido a que la gente mira el código y esta respuesta está bastante arriba en la lista: durante los últimos años, he estado usando este pequeño complemento:
Creo que $ ('div'). Any () se lee mejor que $ ('div'). Length , además de que no sufrirá tanto de errores tipográficos: $ ('div'). Ayn () dará un error de tiempo de ejecución , $ ('div'). la longitud en silencio probablemente sea siempre falsa.
__
Ediciones noviembre 2012:
1) Debido a que las personas tienden a mirar el código y no leer lo que se dice alrededor del código, agregué dos grandes notas de advertencia de lector al código citado de Wolf.
2) Agregué el código del pequeño complemento que uso para esta situación.
fuente
La función de búsqueda devuelve una matriz de elementos coincidentes. Podrías comprobar si la longitud es cero. Tenga en cuenta el cambio para buscar solo los elementos una vez y reutilizar los resultados según sea necesario.
Además, ¿ha intentado utilizar la función de texto? Si no existe ningún elemento, no hará nada.
fuente
La función jquery $ () siempre devuelve un valor no nulo: los elementos medios coinciden con su cretaria de selector. Si no se encuentra el elemento, devolverá una matriz vacía. Entonces su código se verá así:
fuente
En jQuery 1.4 obtienes la función $ .isEmptyObject, pero si te ves obligado a usar una versión anterior de jQ como nosotros, los desarrolladores pobres de Drupal simplemente roban usa este código:
Úselo como:
fuente
No importa cuál sea su selección, la función
$()
siempre devuelve un objeto jQuery para que no pueda usarse para probar. La mejor manera hasta ahora (si no la única) es utilizar lasize()
función o la propiedad de longitud nativa como se explicó anteriormente.fuente
El objeto jQuery que es devuelto por todos los métodos nativos de jQuery NO es una matriz, es un objeto con muchas propiedades; uno de ellos es una propiedad de "longitud". También puede verificar el tamaño () o obtener (0) o obtener () - 'obtener (0)' funciona igual que acceder al primer elemento, es decir, $ (elem) [0]
fuente
¿Qué pasa con el uso de "indefinido"?
fuente
use
$("#selector").get(0)
para verificar con nulos como ese. get devuelve el elemento dom, hasta entonces se trata de una matriz, donde necesita verificar la propiedad de longitud. Personalmente no me gusta la verificación de longitud para el manejo nulo, me confunde por alguna razón :)fuente
Usando la propiedad de longitud puedes hacer esto.
fuente
cuando el objeto está vacío devuelve este error:
Intento este código:
fuente
fuente
¡Llamar a la propiedad de longitud en un objeto indefinido o nulo hará que los navegadores IE y webkit fallen!
En su lugar, intente esto:
o
fuente