igualdad javascript jquery

javascript - igualdad - jquery append



¿Cómo comparo dos objetos jQuery para identidad? (3)

El uso de la función $() siempre creará un nuevo objeto, por lo que pase lo que pase, su comprobación de igualdad siempre fallará.

Por ejemplo:

var div = document.getElementById(''myDiv''); $(div) === $(div); // false!

En su lugar, podrías tratar de almacenar los elementos DOM reales, ya que estos solo se mencionan dentro de los objetos jQuery.

val = $(''#box''+index).get(0); ... if (this !== val) { }

Intento utilizar jQuery para abrir / cerrar ''casillas'' de control en una página web. Desafortunadamente, no parece muy bueno cerrar una caja solo para volver a abrirla si el usuario hace clic en el cuadro ya abierto. (Las cajas son mutuamente excluyentes).

El código que estoy usando no funciona, y no estoy seguro de por qué. Todavía tengo una caja que se cierra solo para abrir de nuevo, que no es la funcionalidad deseada. Creé la variable ''val'' para propósitos de depuración; en el depurador, muestra que ''val'' tiene exactamente el mismo valor que $ (esto), lo que debería evitar que llegue al .slideToggle() dentro de la instrucción if, pero no lo hace.

function openBox(index) { val = $(''#box'' + index); $(''.profilePageContentBox'').each(function(){ if($(this).css(''display'') != ''none'') { if($(this) != val) { $(this).slideToggle(200); } } }); val.slideToggle(200); }


Prueba esto:

function openBox(index) { val=$(''#box''+index); $(''.profilePageContentBox'').each(function(){ if($(this).is(":visible")) { if(!$(this).is("#box"+index)) $(this).slideToggle(200); } }); val.slideToggle(200); }


También puedes hacer:

if(val.is(this))