Javascript jquery:如果(target)是(';.wrapper';)的子级,那么(do something)
简单语法?有人能在这里告诉我正确的语法吗?您可以在链接中使用或类似的方法Javascript jquery:如果(target)是(';.wrapper';)的子级,那么(do something),javascript,jquery,Javascript,Jquery,简单语法?有人能在这里告诉我正确的语法吗?您可以在链接中使用或类似的方法 var target = $(this).attr("href"); if {target is child of ('.wrapper')} then (do something) .has()可能是最方便的语法: if($(target).parents('.wrapper').length > 0) { //do something... } 更“强大”(就性能而言)的是$.contains()。
var target = $(this).attr("href");
if {target is child of ('.wrapper')} then (do something)
.has()
可能是最方便的语法:
if($(target).parents('.wrapper').length > 0) {
//do something...
}
更“强大”(就性能而言)的是$.contains()
。因此,理想的算法应该如下所示:
if( $('.wrapper').has($(target)) ) {
// do something
}
引用:,您不能绑定其他事件吗
var $wrapper = $('.wrapper'),
$target = $(this).attr('href');
if( $.contains($wrapper[0], $target[0]) ) {
// do something
}
雅各布密码的小改动,如果孩子在游戏中的深度超过一级
$('.wrapper *').click(function() {
// will execute on childrens of .wrapper
});
这里有一个更整洁的方法:将其绑定为jQuery插件。您可能会发现它更容易理解和使用
if($(target).parents('.wrapper').length) {
//do something...
}
用法:
$.fn.isChildOf = function(element)
{
return $(element).has(this).length > 0;
}
我知道这是一篇老文章,但它可能对某些人有用。 在我看来,在许多情况下,使用.closest()会有更好的性能:
if ( $('.target').isChildOf('.wrapper') ) {
//do all the things.
}
$(“.child”)是(“.parent.child”)
您可以使用jQuery的.find()
方法进行如下操作:
<div class="parent">
<div class="child">
</div>
</div>
$(".child").is(".parent .child")
$(文档).on('click',函数(e){
if($('.wrapper').find($(e.target)).length>0){
//这里有职员,目标在$('.wrapper'内)
警报('目标是.wrapper'的子对象');
}否则{
警报('目标不是.wrapper'的子对象');
}
} );代码>
.wrapper{
宽度:200px;
高度:200px;
背景:黑色;
显示器:flex;
}
.包装工:以前{
内容:'.wrapper';
颜色:#FFF;
位置:绝对位置;
}
.孩子{
宽度:80px;
高度:80px;
背景:红色;
保证金:自动;
颜色:#fff;
}
小孩
您可以使用jQuery的函数
if ( $( '.wrapper' ).find( $( e.target ) ).length > 0 ) {
// target is a child of $( '.wrapper' )
}
'.wrapper>*'
是用于.wrapper
的显式第一级子级的css选择。如果您需要任何嵌套的锚元素,请使用”。wrapper*“
代替小修改而不是$(target)使用$(this),因为目标包含字符串。请注意,此测试目标是wrapper的直接子元素。@Chinmayee,href
指向OP要检查的元素的实际id
,不是这个。你应该使用最近的而不是父元素。@rahul 0是一个虚假的值,所以你不需要这样做。$的+1。contains()
被jQuery API明确描述为“检查一个DOM元素是否是另一个DOM元素的后代”。我不建议使用所描述的.has()
,因为它不会像您预期的那样返回布尔值。相反,它过滤原始的DOM元素集并返回一个新的jQuery对象。(“Description:将匹配的元素集减少为具有与选择器或DOM元素匹配的后代的元素集。”)因此,尽管在这种情况下它确实会产生正确的结果,但我认为返回值是非直观的,如果假设它返回布尔值,可能会让您头疼。这个答案的上下文是什么,它看起来像是从某处粘贴的代码副本。你能用一些介绍或描述来扩展它吗?虽然这段代码可以回答这个问题,但提供关于它如何和/或为什么解决这个问题的附加上下文将提高答案的长期价值-
if ( $( '.wrapper' ).find( $( e.target ) ).length > 0 ) {
// target is a child of $( '.wrapper' )
}
var target = $(this).attr("href");
if ($('a[href="'+target+'"]').is(('.wrapper > *') {
//do soemthing
}