2014-09-10 58 views
1

我想添加一些html到一個小部件區域,基本上是爲了包裹內部內容。下面是當前的代碼:用HTML包裝代碼(jQuery)

<aside id="meta-2" class="widget widget_meta"><h1 class="widget-title">Stuff</h1> 
    <ul> 
    <li><a href="#">Log in</a></li> 
    <li><a href="#">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li> 
    <li><a href="#">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li> 
    </ul> 
</aside> 

我希望它變成:

<aside id="meta-2" class="widget widget_meta"><h1 class="widget-title">Stuff</h1> 
<div class="widget-inner"> 
    <ul> 
    <li><a href="#">Log in</a></li> 
    <li><a href="#">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li> 
    <li><a href="#">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li> 
    </ul> 
</div> 
</aside> 

請注意,一些「小部件」不包含UL,有可能只是在影像內或一些文字。

我試過一些jQuery片段使用之前,追加等,但無濟於事。

任何幫助將不勝感激。

回答

4

您可以使用.wrap()

$("aside ul").wrap("<div class='widget-inner'></div>"); 

Working Demo

更新:非均勻DOM:

$("aside h1").nextAll().wrap("<div class='widget-inner'></div>"); 

Working Demo

+0

謝謝。我已經更新了我的問題,因爲我沒有解釋清楚。一些小部件內部不會有UL,有些小部件可能只是文本或圖像。 – 2014-09-10 09:13:43

+0

@HuwRowlands:h標籤怎麼樣?它會一直在那裏? – 2014-09-10 09:19:31

+0

是的,H1永遠在那裏。 – 2014-09-10 09:20:37

0

回答上面:

$("aside h1").nextAll().wrap("<div class='widget-inner'></div>"); 

感謝