2012-12-07 40 views

回答

-3

試試這個

$('li a').before('<span>'); 
$('li ul').before('</span>'); 

希望這有助於!

+0

你測試過了嗎?我不認爲這會奏效。 –

+0

這將根據需要添加標籤.... – Narendra

+0

我誠實地不相信它會。如果你能向我展示一個演示,如你所期望的那樣工作,而不是我所期望的那樣,那麼我會扭轉我的倒票。 –

1
$ul = $('li ul'); 
$('li ul').remove(); 
$('li').wrapInner('<span>'); 
$('li').append($ul); 

作品。見http://jsfiddle.net/Lhg32/(感謝您的評論!)

+1

http://jsfiddle.net/Lhg32/ – undefined

+1

所以它的工作原理!感謝jsfiddle :) –

1
var content = $('li').clone(true), 
     ul = content.children('ul').remove(); 

$('li').html($('<span />').append(content.contents()).append(ul)); 

FIDDLE

+0

對不起,我忘了提及我在同一頁面有很多li。我如何才能將其應用於當前的父級? – alexchenco

+0

您需要添加一個類或ID,或者定位一個具有類或ID的父元素,或者使用元素的索引等。真的,但是從您發佈的HTML中無法回答這個問題。 – adeneo

0

http://jsfiddle.net/lamarant/XjQek/

HTML

<ul> 
    <li>This is Item 1 
     <ul> 
      <li>Item 1 Sub 1</li> 
      <li>Item 1 Sub 2</li> 
      <li>Item 1 Sub 3</li> 
     </ul> 
    </li> 
    <li>This is Item 2 
     <ul> 
      <li>Item 2 Sub 1</li> 
      <li>Item 2 Sub 2</li> 
      <li>Item 2 Sub 3</li> 
      <li>Item 2 Sub 4</li> 
     </ul> 
    </li> 
</ul> 

的Javascript

$('ul li').not('ul ul li').each(function() { 
     var $clone = $(this).clone(true); 
     var $origUL = $('ul', $(this)).first(); 
     var $newUL = $('<ul></ul>'); 
     $newUL.html($origUL.html()); 
     $clone.children('ul').remove(); 
     $(this).html('').append($('<span>' + $clone.html().trim() + '</span>')).append($newUL); 
    }); 

結果

<ul> 
    <li><span>This is Item 1</span> 
     <ul> 
      <li>Item 1 Sub 1</li> 
      <li>Item 1 Sub 2</li> 
      <li>Item 1 Sub 3</li> 
     </ul> 
    </li> 
    <li><span>This is Item 2</span> 
     <ul> 
      <li>Item 2 Sub 1</li> 
      <li>Item 2 Sub 2</li> 
      <li>Item 2 Sub 3</li> 
      <li>Item 2 Sub 4</li> 
     </ul> 
    </li> 
</ul>