将匹配html的元素移动到匹配元素

时间:2013-10-02 14:31:12

标签: jquery

<div class="Label" id="Label1">
<h2>Menu</h2>
<ul>
<li>
<a dir="ltr" href="#">Sub</a>
</li>
<li>
<a dir="ltr" href="#">Sub2</a>
</li>
<li>
<a dir="ltr" href="#">Sub3</a>
</li>
</ul>
<div>
...

和子菜单:

<div class="Label" id="Label2">
<h2>Sub</h2>
<ul>
<li>
<a dir="ltr" href="#">Sub-child-1</a>
</li>
<li>
<a dir="ltr" href="#">Sub-child-2</a>
</li>
</ul>
<div>

<div class="Label" id="Label3">
<h2>Sub2</h2>
<ul>
<li>
<a dir="ltr" href="#">Sub2-child-1</a>
</li>
<li>
<a dir="ltr" href="#">Sub2-child-2</a>
</li>
</ul>
<div>

....

我想要一个代码比较$('。标签h2')。html()匹配到$('。标签a')。html()然后移动“包含匹配的'div'”之后“与'a'匹配。

$('.Label a').each(function(){
  if( $(this).html() == $('.Label h2').html() ){ 
      $(this).parent('li').append('$('.Label h2').parent('div')')
  };
});

notwork @@请帮帮我!

1 个答案:

答案 0 :(得分:0)

此代码将为您完成工作。但由于你的页面的CSS,它看起来像一个混乱。你应该修改你的CSS。我已将SubLabel类添加到已移动的子类(子菜单)。

$('.Label a').each(function(){
  var that = this;
  $('.Label h2').each(function(){
      if($(that).html() === $(this).html()){
         $(that).append($(this).parent().addClass('SubLabel'));
      }
  });
});