2012-12-05 8 views
1

的特定部分是我的HTML樣本:jQuery的 - 在這裏總結的文本元素

<td class="prod "> 
    ACTIVE_server 
    <br/> 
    inactivename_1 
    <br/> 
    inactivename_2 
    <br/> 
    inactivename_3 
    <br/> 
</td> 

我只是想換行不活動的數據專用跨度。 是這樣的:

<td class="prod "> 
    ACTIVE_server 
    <br/> 
    <span class="inactive"> 
     inactivename_1 
     <br/> 
     inactivename_2 
     <br/> 
     inactivename_3 
     <br/> 
    </span> 
</td> 

我用盡像這樣幾件事情:

$('td[class*="prod"]>br').after('<span id="inactiveServer">'); 

$('td[class*="prod"]>br').wrap('<span id="inactiveServer">'); 

$('td[class*="prod"]>br').nextUntil('<br>').wrapAll('<span class="inactiveServer">'); 

但不幸的是,它並沒有在所有的工作.. 請你幫我個忙?

-

感謝您提供非常快速的答案。不幸的是,在我的HTML中有一堆。 和你給我的代碼合併它們。 我想讓他們分開。

<td class="prod "> 
    ACTIVE_serverA 
    <br/> 
    inactivename_1a 
    <br/> 
    inactivename_2a 
    <br/> 
</td> 
<td class="prod "> 
    ACTIVE_serverB 
    <br/> 
    inactivename_1b 
    <br/> 
    inactivename_2b 
    <br/> 
</td> 
+1

請寫一個活動和非活動數據的例子。 –

+0

@MichaelMalinovskij這些只是在表中列出的服務器名稱。我必須實現一個隱藏不活動的按鈕的按鈕,以便在桌面上更清晰地查看。 – eponge

+0

只需將每個服務器包裝在一個單獨的區間中,選擇然後wrapAll()就會更容易。自定義過濾器()函數將有助於選擇幫助。 –

回答

2

您可以使用contentsfilter方法:

$('td.prod').contents().filter(function(i){ 
    if (i > 1) return this 
}).wrapAll('<span class="inactiveServer"/>'); 

http://jsfiddle.net/YuZUp/

由於@wirey正確建議你還可以使用slice方法;

$('p.prod').contents().slice(1).wrapAll('<span class="inactiveServer"/>'); 
+0

.slice(1)也可以工作 –