jQuery在嵌套表中用<br/>替换文本

时间:2018-11-15 16:41:42

标签: javascript jquery html replace

我有一些Jquery,它用<br />标签替换了XSL呈现的网页上所有 newline 实例:

$("#ResultsPane td").each(function() {
  var text = ""
  text = $(this).text().replace(/newline/g, "<br />");
});

我不得不更新输出以使用嵌套表:-

<td colspan="4">
  <table>
    <tbody>
      <tr>
        <td style="text-align: left; padding: 8px;width:70px;vertical-align:top;">08:10 - 12:30 newline 
          13:30 - 17:10 newline </td>
        <td style="text-align: left; padding: 8px;vertical-align:top;">
          20 newline 
          20 newline </td>
        <td style="text-align: left; padding: 8px;vertical-align:top;">
          Artesian Building newline 
          Artesian Building newline </td>
        <td style="text-align: left; padding: 8px;border-right:2px solid #000;vertical-align:top;"></td>
      </tr>
    </tbody>
  </table>
</td>

但是,最终结果是,当运行Jquery脚本时,所有嵌套表都将转换为纯文本节点。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的代码无效,因为您没有保存更改。还
您可以使用.html( function )代替.each()

$("#ResultsPane td").html(function(i, h){
  return h.replace(/newline/g, "<br />");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="ResultsPane">
  <tr><td colspan="4">
    <table>
      <tbody><tr>
        <td style="text-align: left; padding: 8px;width:70px;vertical-align:top;">08:10 - 12:30 newline 
          13:30 - 17:10 newline </td>
        <td style="text-align: left; padding: 8px;vertical-align:top;">
          20 newline 
          20 newline </td>
        <td style="text-align: left; padding: 8px;vertical-align:top;">
          Artesian Building newline 
          Artesian Building newline </td>
        <td style="text-align: left; padding: 8px;border-right:2px solid #000;vertical-align:top;"></td>
        </tr>
      </tbody></table>
    </td>
  </tr>
</table>