1

これが私のHTMLサンプルです:

<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">');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<td class="prod ">
  ACTIVE_server
  <br/> inactivename_1
  <br/> inactivename_2
  <br/> inactivename_3
  <br/>
</td>

残念ながら、まったく機能しません。それを機能させる方法は?

4

1 に答える 1

2

contentsandfilterメソッドを使用できます。

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

http://jsfiddle.net/YuZUp/

slice@wirey が正しく示唆しているように、このメソッドも使用できます。

$('p.prod').contents().slice(1).wrapAll('<span class="inactiveServer"/>');
于 2012-12-05T14:59:17.357 に答える