Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery:如果(target)是(';.wrapper';)的子级,那么(do something)_Javascript_Jquery - Fatal编程技术网

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
}