2013-07-10 63 views
-1

我試圖用li元素中的jquery包裝一些元素。我的問題是我想切換它們在裏面的順序。現在是李開始 - 一個div - li結束,但我想李開始 - div - a - 李結束。jQuery包裝和重新排序裏面的元素

我該怎麼做?我嘗試了一切,但它沒有奏效。謝謝你的任何建議!

$('a.top_link+div.sub').not(":first").each(function() { 
    $(this).prev().andSelf().wrapAll('<li class="aaa">'); 
}); 

HTML

<a href="something.com" class="top_link">Something</a> 
<div class="sub">Some other content..</div> 

我想換行,並重新排序的內容是這樣的:上面

<li class="aaa"> 
<div class="sub">Some other content..</div> 
<a href="something.com" class="top_link">Something</a> 
</li> 

的元素不止一個,只是內容不同(菜單的一部分)。

+2

請張貼有關HTML太.. – techfoobar

+0

添加小提琴是可能的,將是很容易理解和糾正 – dreamweiver

+0

添加HTML ..謝謝 –

回答

1

這應該工作:

$('a.top_link+div.sub').each(function() { 
    $(this).insertBefore($(this).prev()).add($(this).next()).wrapAll('<li class="aaa">'); 
}); 

對於每個div.sub,上面的代碼所做的:

  1. 將其移動到前<a>
  2. 添加<a>到集合
  3. 裹兩在<li>

演示http://jsfiddle.net/vjC3x/

+0

我不能感謝你纔好..謝謝你真是太棒了! –