首页 > 解决方案 > JQuery 将文本替换为
JQuery用嵌套表中的

问题描述

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

$("#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 脚本运行时,所有嵌套表都被转换为纯文本节点。

谁能帮我解决这个问题?

标签: javascriptjqueryhtmlreplace

解决方案


您的代码不起作用,因为您没有保存更改。您也
可以使用.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>


推荐阅读