Skip to content

取除 HTML 标签

js
function stripHTML(html) {
  var temp = document.createElement("div");
  temp.innerHTML = html;
  return temp.textContent || temp.innerText || "";
}

例 1

html
<div class="content" th:text="${intro.article.content}"></div>

<script th:inline="javascript">
  window.addEventListener("DOMContentLoaded", function () {
    const moreLine = document.querySelector(".more-line__intro .content");

    if (moreLine) {
      const content = moreLine.innerText;
      // 去除 html 标签
      moreLine.innerText = stripHTML(content);
    }

    function stripHTML(html) {
      var temp = document.createElement("div");
      temp.innerHTML = html;
      return temp.textContent || temp.innerText || "";
    }
  });
</script>

例 2

没有 summary ,需要获取详情来填充 summary

html
<div class="hlx-news-list">
    <a
      class="news-list-item"
      th:each="item : ${newsPageTotal.list}"
      th:href="${item.article.pcUrl}"
      th:title="${item.listTitle}"
    >
      <div class="cover">
        <th:block th:if="${item.listImage.length > 0}">
          <img th:src="${item.listImage}">
        </th:block>
      </div>

      <div class="info">
        <div class="title" th:text="${item.listTitle}">
        </div>
        <div class="summary" th:text="${item.article.summary}" th:id="${'summary'+item.article.id}">
        </div>
        <div class="date" th:text="${item.pubTime.substring(0, 10)}">2025-07-22</div>
      </div>
    </a>
  </div>

  <script th:inline="javascript">
    window.addEventListener('DOMContentLoaded', function () {
      let dataList = [
        /*[# th:each="item, stat : ${newsPageTotal.list}"]*/
        { id: '[[${item.article.id}]]', summary: [[${item.article.content}]] },
        /*[/]*/
      ];

      for (var i = 0; i < dataList.length; i++) {
        var summary = document.getElementById('summary' + dataList[i].id);

        if (summary.innerHTML == false) {
          summary.innerHTML = stripHTML(dataList[i].summary);
        }
      }

      function stripHTML(html) {
        var temp = document.createElement('div');
        temp.innerHTML = html;
        return temp.textContent || temp.innerText || '';
      }
    });
  </script>