var target = $(this).attr("href");
if {target is child of ('.wrapper')} then (do something)
sintaxis simple? ¿alguien me puede mostrar la sintaxis correcta aquí?jquery: if (target) es hijo de ('.wrapper') then (haz algo)
var target = $(this).attr("href");
if {target is child of ('.wrapper')} then (do something)
sintaxis simple? ¿alguien me puede mostrar la sintaxis correcta aquí?jquery: if (target) es hijo de ('.wrapper') then (haz algo)
if($(target).parents('.wrapper').length > 0) {
//do something...
}
.has()
es tal vez el Mose sintaxis conveniente:
if($('.wrapper').has($(target))) {
// do something
}
Aún más "potente" (en términos de rendimiento) es $.contains()
. Así que un algoritmo ideal debería parecerse a:
var $wrapper = $('.wrapper'),
$target = $(this).attr('href');
if($.contains($wrapper[0], $target[0])) {
// do something
}
Referencia: .has(), $.contains()
+1 por '$.contains() 'que la API de jQuery describe explícitamente como" Verificar para ver si un elemento DOM es un descendiente de otro elemento DOM ". – gfullam
No recomendaría el uso de '.has()' como se describe, porque no devuelve un booleano como es de esperar. En cambio, filtra el conjunto original de elementos DOM y devuelve un nuevo objeto jQuery. ("Descripción: reduzca el conjunto de elementos coincidentes a aquellos que tienen un descendiente que coincida con el selector o el elemento DOM"). Aunque en este caso, _sea_ produce el resultado correcto, creo que el valor de retorno no es intuitivo y puede causarle dolores de cabeza si asumes que devuelve un booleano. –
No puedes obligar a otro evento? .
$('.wrapper *').click(function() {
// will execute on childrens of .wrapper
});
pequeño cambio en el código de Jacob, si el niño es más profundo que un nivel en
if($(target).parents('.wrapper').length) {
//do something...
}
Aquí está una manera más ordenada: se unen como un plugin de jQuery. Es posible que le resulte más fácil de entender y usar.
$.fn.isChildOf = function(element)
{
return $(element).has(this).length > 0;
}
Uso:
if ($('.target').isChildOf('.wrapper')) {
//do all the things.
}
Sé que esto es antiguo puesto, pero podría ser útil para alguien. Me parece que en muchos casos el uso de .closest() tendría un mejor rendimiento:
if ($(target).closest('.wrapper').length){
// your code here
}
<div class="parent">
<div class="child">
</div>
</div>
$(".child").is(".parent .child")
cuál es el contexto de esta respuesta, parece una copia de código pegada desde algún lugar. ¿Puedes ampliarlo con alguna introducción o descripción que pueda ser? – Farside
Si bien este código puede responder a la pregunta, proporcionar un contexto adicional con respecto a * cómo * y/o * por qué * resuelve el problema mejoraría el valor a largo plazo de la respuesta. - [De la crítica] (http://stackoverflow.com/review/low-quality-posts/13223379) –
pequeña modificación en lugar de $ (objetivo) utiliza $ (este) como destino contiene cadena. –
Tenga en cuenta que esto prueba que el objetivo es un elemento directo del contenedor. – cherouvim
@Chinmayee, el 'href' apunta al' id' real del elemento que el OP desea verificar, no 'this'. –