2013-10-11 23 views
2

見的jsfiddle第一JQuery的包裹克隆後的整個部分

JSFIDDLE

我不得不源結構

​​

轉換成

<div class="newout"> 
    <ul> 
     <li class="haha"> 
      <a>im here</a> 
      <span><a>im here</a></span> 
     </li> 
     <li class="haha"> 
      <a>to save</a> 
      <span><a>to save</a></span> 
     </li> 
     <li class="haha"> 
      <a>our</a> 
      <span><a>our</a></span> 
     </li> 
     <li class="haha"> 
      <a>country</a> 
      <span><a>country</a></span> 
     </li> 
    </ul> 
</div> 

這意味着我必須做的以下程序:

  • 1.clone a標籤
  • span標籤
  • 它3.append以前a標籤
  • 4.wrap中li標記以前的標籤2.wrap它,並添加類
  • 5 。然後將所有以前的元素換成ul標記

我不知道如何使用JQuery來實現STEP4。我不知道如何獲得這些標籤並添加換行。

非常感謝!

+0

這樣做的另一種方式http://jsfiddle.net/u3Ttc/2/ – rab

回答

2

嘗試

$(document).ready(function() { 

    var $ct = $('.out').removeClass('out').addClass('newout'); 
    var $ul = $('<ul />').appendTo($ct); 
    $ct.children('a').each(function(){ 
     var $this = $(this); 
     $this.wrap('<li class="haha" />'); 
     $('<span />').append($this.clone()).insertAfter($this); 
     $this.parent().appendTo($ul) 
    }) 

}); 

演示:Fiddle

或者

$(document).ready(function() {  
    var $ct = $('.out').removeClass('out').addClass('newout'); 
    var $ul = $('<ul />').appendTo($ct); 
    $ct.children('a').each(function() { 
     var $this = $(this); 
     $('<li />', { 
      'class': 'haha' 
     }).append(this).append($('<span />').append($this.clone())).appendTo($ul) 
    }) 
}); 

演示:Fiddle

+0

隨着你的演示,我終於明白了它的機制。非常感謝你!!! – Darklizard