javascript - jQuery:获取元素的 "raw"内容

标签 javascript jquery

我有这个div:

<div id="test">
    {{? a && b || c < 0}}
        <div>Pece &alt; Love!</div>
    {{?}}
</div>

我确实需要像上面报告的那样获取其内容(大括号语法用于模板引擎)。

不幸的是,.html() 和 .text() 都不起作用:

// $('#test').text() 
{{? a && b || c < 0}}
    Pece &alt; Love!
{{?}}

.text() 去掉标签

// $('#test').html()
{{? a &amp;&amp; b || c &lt; 0 }}
    <div>Pece &amp;alt; Love!</div>
{{?}}

.html() 对 & 符号(和 < >)进行编码。

有什么帮助吗?谢谢

最佳答案

将模板存储为 HTML 并不是一个好主意。将它们存储在 <script> 内具有自定义 mimetype 的标签:

<script type="text/your-template" id="template">
    {{? a<b && b>c }}
        <div>Peace &amp; Love!</div>
    {{?}}
</script>

正如您所注意到的,将非 HTML 模板存储为 HTML 会产生不良结果:

  • 您的原始标记已消失。当您查看.innerHTML时您会看到什么property 是浏览器将您的模板解释为有效 HTML 的内容,可以更改它:http://jsfiddle.net/ZFd6a/3/
  • a<b && b>c将变成ac ,因为中间部分将被解释为一个元素。
  • 杂散的小于号和大于号将被转换为字符实体。
  • 您必须使用 HTML 字符实体。

您完全受浏览器 HTML 解析器的支配。当您将模板移至<script>时如果标签的 mimetype 不是为 JavaScript 保留的,则您的模板将被视为字符串,这正是您想要的。

关于javascript - jQuery:获取元素的 "raw"内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458121/

相关文章:

javascript - 如何在cookie中存储JS对象

javascript - 如何使用 jquery 勾选所有复选框?

javascript - PHP 脚本检索 JSON 文件 - 如何将其传递给 JavaScript?

javascript - 无法从用户那里获取图像,在 div 中显示它,缩放它并将它附加到正文

javascript - 需要改变元素在 slideToggle 上的位置

javascript - 'Error: uncaught exception: Syntax error, unrecognized expression: [object Object]' 在 jQuery 中意味着什么?

javascript - 查找 'unknown' 形式的所有单选按钮

javascript - 在 Isotope.js 中加入多个复选框过滤器

javascript - 根据条件是否 react 更改文本颜色

javascript - 如何使用 JQuery 从远程元素获取 img src 和文本?