Estoy tratando de llamar a una función solo si un elemento HTML está vacío, usando jQuery.
Algo como esto:
if (isEmpty($('#element'))) {
// do something
}
javascript
jquery
vitto
fuente
fuente
$('#elem').text().match(/\S/) || alert('empty');
Respuestas:
Para obtener más información, visite http://api.jquery.com/is/ y http://api.jquery.com/empty-selector/
EDITAR:
Como algunos han señalado, la interpretación del navegador de un elemento vacío puede variar. Si desea ignorar elementos invisibles como espacios y saltos de línea y hacer que la implementación sea más consistente, puede crear una función (o simplemente usar el código dentro de ella).
También puede convertirlo en un complemento jQuery, pero se entiende la idea.
fuente
Encontré que esta es la única forma confiable (ya que Chrome y FF consideran los espacios en blanco y los saltos de línea como elementos):
fuente
if(!$.trim($("selector").html())
if($("selector").children().length === 0)
oif($("selector > *").length === 0)
.Los espacios en blanco y los saltos de línea son los principales problemas con el uso: selector vacío. Cuidado, en CSS, la pseudo clase vacía se comporta de la misma manera. Me gusta este metodo:
fuente
$.children()
no devuelve nodos de texto o comentario, lo que significa que esta solución solo comprueba si el elemento está vacío de elementos . Si un elemento que contiene solo texto o comentarios no debe considerarse vacío para sus necesidades, entonces debe usar una de las otras soluciones.select
elementos es perfecto. La condición también puede serif(! $el.children().length)
.Sí, lo sé, esto no es jQuery, por lo que podría usar esto:
¿Feliz ahora?
fuente
filter
función jQuery ya que no quería usar jQuery dentro de la función a menos que fuera necesario.<div class="results"> </div>
, esta declaración devolverá falso. jsfiddle.net/ytliuSVN/0pdwLt46fuente
this
además del elemento jQuery @ZealMurapa?Si por "vacío", quiere decir sin contenido HTML,
fuente
¿Vacío como en no contiene texto?
fuente
En resumen, hay muchas opciones para averiguar si un elemento está vacío:
1- Usando
html
:2- Usando
text
:3- Usando
is(':empty')
:4- Usando
length
Además, si está tratando de averiguar si un elemento de entrada está vacío, puede usar
val
:fuente
Otra opción que debería requerir menos "trabajo" para el navegador que
html()
ochildren()
:fuente
o
fuente
Puedes probar:
* Reemplazar espacios en blanco, solo en caso;)
fuente
!/[\S]/.test($('Selector').html())
trabajar mejor, una vez que encuentre un poco de espacio en blanco que sabe que no está vacíoThe production CharacterClassEscape :: S evaluates by returning the set of all characters not included in the set returned by CharacterClassEscape :: s.
de ecma-international.org/ecma-262/5.1/#sec-15.10.2.12fuente
Estás buscando
jQuery.isEmptyObject()
?http://api.jquery.com/jquery.isemptyobject/
fuente
Aquí hay un filtro jQuery basado en https://stackoverflow.com/a/6813294/698289
fuente
JavaScript
intenta usar algo de esto!
fuente
Prueba esto:
fuente
Los saltos de línea se consideran contenido para elementos en FF.
Ex:
En IE, ambos divs se consideran vacíos, en FF y Chrome solo el último está vacío.
Puede usar la solución provista por @qwertymk
o
fuente