Javascript 2个列表,如果列表1中的元素x具有类y,则将类添加到第2个列表中的元素x

Javascript 2个列表,如果列表1中的元素x具有类y,则将类添加到第2个列表中的元素x,javascript,jquery,list,Javascript,Jquery,List,我正面临一个难题。我不能将我的问题分解为javascript/jQuery,我不知道如何做 我有两张单子。这是我的第一份清单 <ul class="list1"> <li class="with-iframe"></li> <li></li> <li class="with-iframe"></li> <li></li> <li></li> &l

我正面临一个难题。我不能将我的问题分解为javascript/jQuery,我不知道如何做

我有两张单子。这是我的第一份清单

<ul class="list1">
  <li class="with-iframe"></li>
  <li></li>
  <li class="with-iframe"></li>
  <li></li>
  <li></li>
</ul>
我的第二个列表有相同数量的元素,但没有类

<ul class="list2">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>
如果我的第一个列表中的
  • 有一个“with-iframe”类,那么我的第二个列表中的元素(在相同位置)也有一个“with-iframe”类

    每个列表中的项目数始终相同

    有没有解决我的问题的办法

    感谢您对纯JS的帮助和解释

    var l1=document.querySelectorAll('ul.list1 li');
    var l2=document.queryselectoral('ul.list2 li');
    对于纯JS的(var i=0;i)

    var l1=document.querySelectorAll('ul.list1 li');
    var l2=document.queryselectoral('ul.list2 li');
    
    对于(var i=0;i您可以按如下方式执行:

    $('.list1 li').each(function(index) {
        if ($(this).hasClass('with-iframe')) {
        $('.list2 li').eq(index).addClass('with-iframe');
      }
    });
    
    $('.list1 li')。每个(函数(索引){
    if($(this).hasClass('with-iframe')){
    $('.list2li').eq(index).addClass('with-iframe');
    }
    });
    。使用iframe{
    颜色:红色;
    }
    
    
      测试
    • 试验
    • 测试
    • 试验
    • 试验
    • 试验
    • 试验
    • 试验
    • 试验
    • 试验

    您可以按以下方式执行:

    $('.list1 li').each(function(index) {
        if ($(this).hasClass('with-iframe')) {
        $('.list2 li').eq(index).addClass('with-iframe');
      }
    });
    
    $('.list1 li')。每个(函数(索引){
    if($(this).hasClass('with-iframe')){
    $('.list2li').eq(index).addClass('with-iframe');
    }
    });
    。使用iframe{
    颜色:红色;
    }
    
    
      测试
    • 试验
    • 测试
    • 试验
    • 试验
    • 试验
    • 试验
    • 试验
    • 试验
    • 试验

    试试这样的方法

    $(“.list1 li.with iframe”).each(函数(){
    var index=$(this.index();
    $(“.list2li:n子项(“+(索引+1)+”).addClass(“带iframe”);
    });
    。使用iframe
    {
    背景色:#aaa;
    颜色:#fff;
    }
    
    第一名单
    
    第二份名单

    试试这样的方法

    $(“.list1 li.with iframe”).each(函数(){
    var index=$(this.index();
    $(“.list2li:n子项(“+(索引+1)+”).addClass(“带iframe”);
    });
    。使用iframe
    {
    背景色:#aaa;
    颜色:#fff;
    }
    
    第一名单
    
    第二份名单

    您可以简单地循环第一个列表中的元素,当您使用iframe
    找到具有类
    的元素时,将相同的类添加到第二个列表中该位置的项中

    因此:

    • 使用
      $(“.list1 li”)迭代元素。每个(…)
    • 检查当前项的类值
      if($(li).hasClass(“带iframe”))
    • 获取位于相同位置的第二个列表项
      var li=$(“.list2 li”)[idx]
    • 最后,将相同的类添加到该元素
      $(li)。addClass(“with iframe”)
    $(文档).ready(函数(){
    $(“.list1 li”)。每个(函数(idx,li){
    if($(li).hasClass(“带iframe”)){
    var li=$(“.list2 li”)[idx];
    $(li).addClass(“带iframe”);
    }
    });
    });
    
    

    您可以简单地循环第一个列表中的元素,当您使用iframe
    找到具有类
    的元素时,将相同的类添加到第二个列表中该位置的项中

    因此:

    • 使用
      $(“.list1 li”)迭代元素。每个(…)
    • 检查当前项的类值
      if($(li).hasClass(“带iframe”))
    • 获取位于相同位置的第二个列表项
      var li=$(“.list2 li”)[idx]
    • 最后,将相同的类添加到该元素
      $(li)。addClass(“with iframe”)
    $(文档).ready(函数(){
    $(“.list1 li”)。每个(函数(idx,li){
    if($(li).hasClass(“带iframe”)){
    var li=$(“.list2 li”)[idx];
    $(li).addClass(“带iframe”);
    }
    });
    });