javascript - jQuery - 包装文本元素的特定部分

标签 javascript jquery selector

这是我的 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>

但不幸的是,它根本不起作用。如何让它发挥作用?

最佳答案

您可以使用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"/>');

关于javascript - jQuery - 包装文本元素的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725813/

相关文章:

jquery - 页面重新加载后选定的下拉列表值发生变化

javascript - 有了 Promise,为什么浏览器会返回两次拒绝而不是两次解析?

javascript - 如何获得一个元素的所有 CSS 变换的组合矩阵?

Javascript,垂直折叠/展开菜单-页面更改后记住

swift - 使用运行时指定的协议(protocol)一致性测试和选择器的通用调度机制

css - 使用 CSS,选择具有多个 ID 属性 "#id1 #id2 {..."是否有意义

swift - 创建带有函数类型变量的选择器

javascript - 使用mozilla PDFJS如何显示所有页面而不是单个页面

javascript - 我怎样才能停止点击联系人按钮上的功能 window.open 在 parent

javascript - 悬停时,多个嵌套圆环图不显示气球文本 - amcharts