Tengo una función que agrega <div>
a un elemento al hacer clic. La función obtiene el texto del elemento seleccionado y lo asigna a una variable llamada name
. Esa variable se usa como la <div>
id
del elemento adjunto.
Necesito ver si ya existe un <div>
id
con name
antes de agregar el elemento, pero no sé cómo encontrarlo.
Aquí está mi código:
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
Esto parece bastante sencillo, pero recibo el error " Fin inesperado del archivo al buscar el nombre de la clase" . No tengo idea de lo que eso significa.
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" + name + "'></div>");
}
Además, quiero poder eliminar este elemento si lo cierro, lo que debería eliminarlo div id [name]
del documento pero .remove()
no lo hace.
Aquí está el código para eso:
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
Agregué .mini-close
a la función append como hijo de, .labels
por lo que había una manera de cerrar el anexo <div>
si fuera necesario. Después de hacer clic .mini-close
e intentar hacer clic en el mismo nombre nuevamente li.friends
, aún encuentra el div id [name]
y devuelve la primera parte de mi if
declaración.
fuente
$("div#" + name).css({bottom: '30px'});
está mal, debería estarlo$("div#" + name).css('bottom', '30px');
Respuestas:
Puede usar
.length
después del selector para ver si coincide con algún elemento, como este:La versión completa:
O, la versión que no es jQuery para esta parte (ya que es una ID):
fuente
!$("#"+name).length)
:)===
lugar de sierra==
.La respuesta de Nick lo clava. También puede usar el valor de retorno de getElementById directamente como su condición, en lugar de compararlo con nulo (de cualquier manera funciona, pero personalmente encuentro que este estilo es un poco más legible):
fuente
Intente verificar la longitud del selector, si le devuelve algo, entonces el elemento debe existir de otra manera.
Use la primera condición if para id y la segunda para clase.
fuente
fuente
Otra forma abreviada:
fuente
Puede verificar usando jquery simplemente así:
fuente
La forma más simple es ...
Esto también es parte de las especificaciones HTML5: https://www.w3.org/TR/html5/single-page.html#accessing-other-browsing-contexts#named-access-on-the-window-object
fuente
Aquí está la función jQuery que uso:
Esto devolverá un valor booleano. Si el elemento existe, devuelve verdadero. Si desea seleccionar un elemento por nombre de clase, simplemente reemplace
#
con.
fuente
Puedes manejarlo de diferentes maneras,
Objetivo es verificar si el div existe y luego ejecutar el código. Sencillo.
Condición:
Nota:
Esto devolverá un número cada vez que se ejecute, por lo que si no hay div, dará un cero [0], y como no 0 puede representarse como falso en binario para que pueda usarlo en la instrucción if. Y puedes usarlo como una comparación con un número ninguno. mientras que hay tres declaración dada a continuación
fuente
ingrese la identificación que desea verificar en jquery is method.
fuente