Javascript Jquery如果类具有匹配的ID,则隐藏

Javascript Jquery如果类具有匹配的ID,则隐藏,javascript,jquery,html,Javascript,Jquery,Html,这里我要做的是检查一个元素是否与另一个元素中的类具有相同的id,如果是,则隐藏匹配的id 到目前为止,这是我想到的,但它似乎没有踢 var theid=$('me li').attr('id'); if($('#you li').hasClass(theid)){ $(“#me li”+theid+”).hide(); } iam 1 ieam 2&;应该隐藏起来 iam 3 iam 4 ieam 5&;应该隐藏起来 iam 6 iam杀手 iam杀手 使用each()

这里我要做的是检查一个元素是否与另一个元素中的类具有相同的
id
,如果是,则隐藏匹配的
id

到目前为止,这是我想到的,但它似乎没有踢

var theid=$('me li').attr('id');
if($('#you li').hasClass(theid)){
$(“#me li”+theid+”).hide();
}

    iam 1 ieam 2&;应该隐藏起来 iam 3 iam 4 ieam 5&;应该隐藏起来 iam 6
    iam杀手
  • iam杀手
  • 使用
    each()
    循环遍历
    中的所有
    li
    元素
  • hide()
    具有与循环中当前元素的
    class
    相同的
    id的元素
  • $('#you li')。每个(函数(){
    $('#'+$(this.attr('class')).hide();
    });
    
    
    
      iam 1 ieam 2 iam 3&;应该隐藏起来 iam 4 ieam 5&;应该隐藏起来 iam 6
    • iam杀手
    • iam杀手
  • 使用
    each()
    循环遍历
    中的所有
    li
    元素
  • hide()
    具有与循环中当前元素的
    class
    相同的
    id的元素
  • $('#you li')。每个(函数(){
    $('#'+$(this.attr('class')).hide();
    });
    
    
    
      iam 1 ieam 2 iam 3&;应该隐藏起来 iam 4 ieam 5&;应该隐藏起来 iam 6
    • iam杀手
    • iam杀手

    对包含多个元素的jQuery对象使用
    .attr()
    方法时,它只返回第一个元素的属性。您需要在每个元素上循环,并一次检查一个元素

    但是,出于您的目的,可以对所有
    元素集使用
    .hasClass()。因此:

    var you = $('#you li');
    
    $('#me li').each(function() {
        if (you.hasClass(this.id))
            $(this).hide();
    });
    
    注意,我在变量
    you
    中保留了对
    $('#you li')
    jQuery对象的引用,以保存每次在循环中再次选择这些元素


    演示:

    在包含多个元素的jQuery对象上使用
    .attr()
    方法时,它只返回第一个元素的属性。您需要在每个元素上循环,并一次检查一个元素

    但是,出于您的目的,可以对所有
    元素集使用
    .hasClass()。因此:

    var you = $('#you li');
    
    $('#me li').each(function() {
        if (you.hasClass(this.id))
            $(this).hide();
    });
    
    注意,我在变量
    you
    中保留了对
    $('#you li')
    jQuery对象的引用,以保存每次在循环中再次选择这些元素


    演示:

    为您的jquery尝试以下操作:

    $(function() {
        $("#you li").each(function(){
            var theid = $(this).attr('class');
            $('#'+theid).hide();
        });
    });
    

    演示:

    为您的jquery尝试以下操作:

    $(function() {
        $("#you li").each(function(){
            var theid = $(this).attr('class');
            $('#'+theid).hide();
        });
    });
    

    演示:

    您可以
    筛选
    #me li
    ,返回其
    id
    作为类存在于
    #You li
    中的元素,然后将其隐藏。这也适用于多个类:

    $('#me li').filter(function() {
       return $('#you').has('.' + this.id).length;
    }).hide();
    

    您可以
    筛选
    #me li
    ,返回其
    id
    作为类存在于
    #You li
    中的元素,然后将其隐藏。这也适用于多个类:

    $('#me li').filter(function() {
       return $('#you').has('.' + this.id).length;
    }).hide();
    


    hasClass()之后不需要code>,
    为什么要隐藏带有
    id=“num-1”
    的元素?没有具有
    num-1
    类的元素。请更新您的示例,使其与您的问题描述一致。
    hasClass()之后不需要code>,
    为什么要隐藏带有
    id=“num-1”
    的元素?没有具有
    num-1
    类的元素。请更新您的示例,使其与您的问题描述一致。@Pepo_rasta否,这将适用于OP提供的代码,rally需要遵守ifstatement@DCdaz为什么?不管怎么说,你正在检查元素是否有
    ,然后你出于其他原因隐藏了它。这是可以的,因为你已经给出了最干燥的答案,我喜欢它。@Pepo_rasta否,这将适用于代码OP提供的Hi Tushar,rally需要遵守ifstatement@DCdaz为什么?无论如何,你检查元素是否有
    ,然后你隐藏它是出于其他原因,这是可以的,因为你已经给出了最简单的答案,我很喜欢。如果简单的示例html稍微复杂一点,而
    \you li
    元素分配了多个类怎么办?我说“如果”。我的意思是,用另一种方式编写代码同样容易,然后它可以满足所显示的html或多个类的需要。我正在为OP当前的问题提供一个解决方案。我不知道他将来打算做什么。实际上,我甚至不明白他为什么要检查
    类而不是其他属性。但是他是:-)如果简单的示例html稍微复杂一点,并且
    #you li
    元素分配了不止一个类怎么办?我说的是“如果”。我的意思是,用另一种方式编写代码同样容易,然后它可以满足所显示的html或多个类的需要。我正在为OP当前的问题提供一个解决方案。我不知道他在说什么