【问题标题】:How to get all the html inside a tag as it is using jquery? [duplicate]如何在使用jquery时获取标签内的所有html? [复制]
【发布时间】:2017-05-31 18:08:28
【问题描述】:

考虑这个例子:

<div>
  A&
  <br>
  B
</div>

如果我使用$('div').html(),它会返回A&amp;amp;&lt;br&gt;B。它将A&amp;amp; 转换为我不想要的A&amp;amp;

如果使用$('div').text(),则返回A&amp;B。它忽略了我也不想要的&lt;br&gt;

我正在寻找一种方法来获取 div 中的所有 html,而无需对其进行解析,也不会跳过 &lt;br&gt; 之类的标签。

这是我想要的结果:A&amp;&lt;br&gt;B。我该如何实现?

【问题讨论】:

  • &amp;amp; 有什么问题?这将是获取 HTML 的正确响应
  • 没错,你应该坚持&amp;amp;
  • 我需要按原样获取内容。它将用作 C++ 程序等的输入。所以我不能将它从 & 更改为 &因为如果输入从 & 变为 &,程序会给出不同的输出
  • 这可以用一点香草js来完成。看看这个答案。 stackoverflow.com/a/7394787/5937428
  • @tbirrell 然后回答问题...

标签: javascript jquery html


【解决方案1】:

function decodeEntities(encodedString) {
    var textArea = document.createElement('textarea');
    textArea.innerHTML = encodedString;
    return textArea.value;
}
console.log(decodeEntities($('div').first().html()))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  A&
  <br>
  B
</div>

编辑

另见node.innerText https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText

【讨论】:

  • 谢谢。像您之前建议的那样,香草 javascript 中的 innerText 也可以正常工作。我会用那个。
  • 谢谢,我会加回来供参考
【解决方案2】:

这确实是一个“黑客”,但它确实有效。

$("<textarea>").html($("div").html()).val()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 2011-05-10
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多