【问题标题】:jquery looping and copying classes to parentjquery循环和复制类到父
【发布时间】:2012-05-09 10:38:51
【问题描述】:

我有很多动态生成的盒子。 像这样,

<div id="container">

<div class="element">
<div class="1"></div><div class="2"></div>
<div id="star"><div class="flexy threestar price100 city"></div>
<div class="3"></div><div class="4"></div>
</div>


<div class="element">
<div class="1"></div><div class="2"></div>
<div id="star"><div class="flexy fourstar price300 suburb"></div>
<div class="3"></div><div class="4"></div>
</div>


</div>

现在我正在尝试遍历所有框并尝试将 .flexy 复制到父类 .element

所以我用了

$( "div.flexy" ).each ( function( ){
$('.element').toggleClass($(this).attr('class'));

//alert( $('div.element').attr('class') );

} 
);

第一次复制工作,之后我得到了双节课。 如何克服这个问题? .element 的结果应该是某事。喜欢

<div class="element flexy fourstar price300 suburb">
  <div class="1"></div><div class="2"></div>
    <div id="star"><div class="flexy fourstar price300 suburb"></div>
  <div class="3"></div><div class="4"></div>
</div>

【问题讨论】:

    标签: jquery arrays loops copy


    【解决方案1】:

    简单试试

    $("div.flexy").each(function(){
      $this = $(this);
      $this.closest('.element').addClass($this.attr('class')); 
    });
    

    【讨论】:

      【解决方案2】:

      如果副本的目标与下一个副本的选择位于同一部分,那么下次您将获得双打。

      你可以:

      1. 复制到不同的部分,没有被复制选择选中

      2. 给元素添加一个类,并在复制选择中排除这个

      【讨论】:

        【解决方案3】:

        怎么样:

        var num = 0;
        $( "div.flexy" ).each ( function( ){
        
        $('.element').eq(num).toggleClass($(this).attr('class'));
        num++
        
        } 
        );
        

        或者

        $( "div.flexy" ).each ( function( ){
        
        $(this).parent(".element").toggleClass($(this).attr('class'));
        
        } 
        );
        

        【讨论】:

          猜你喜欢
          • 2020-10-16
          • 2020-09-27
          • 2015-11-15
          • 2013-09-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-25
          相关资源
          最近更新 更多