jQuery .html() auto change ' to "
我的HTML如下(示例)
1
| "<i class='la la-angle-double-right'>" |
假设我使用Ajax来加载HTML内容并将其推入DIV(Ajaxify概念)。
但当我打电话给$(element).html();时,它就回来了
1
| "<i class="la la-angle-double-right">" |
然后让JS面对问题Unexpected identifier at HTMLDivElement...。如果我打电话给$(element).text();,它会返回'' // empty string。
问题是,在我的例子中,如何通过jquery获取原始HTML?
注:我的全部内容是...的全部内容。
- Ajax请求返回什么内容?.html()应该为您服务,只需检查您的请求的响应即可。
- 你想完成什么?首先,元素中没有文本,只有元素,因此$(element.text()确实会导致空字符串。$(element.html()(如果指向正确的元素)应按预期返回HTML。
- @演示服务器的响应完全是"</i>",但是在包装$(content)之后(我通过slector找到它),然后调用.html(),它返回"</i>"。
- @leon它指向正确的元素,这太奇怪了,以至于在$(element)之后,html字符"变成"
- @在aswinkumar中,内容不仅是i标签,我只是举个例子-真正的内容是整个页面(我使用ajax请求页面,然后使用jquery更新UI以防止浏览器重新呈现整个页面-Ajaxify概念)。
- 我看到的唯一区别就是引用。您可以对HTML字符串执行一个简单的替换函数,用单引号替换双引号。
- @我试过了,但它并没有覆盖所有的HTML内容。比如说,我们不仅要有src=""href="",还要有class="...." and then end by">。
- 请参阅此处以替换字符串中的所有事件。
- @freedomn-m:op使用返回的字符串来提供一些数据表选项…查看相关图片。
- 如何从屏幕截图生成"不透明"脚本?这似乎就是问题所在。
- 从您的图像中我可以看到,您的蛋白石包含一个具有未转义的HTML字符串的对象。问题可能在于您构建该对象的方式。你需要避开这里的双引号。你怎么填?
和都是同一事物的有效表示。
如果获取HTML并将其转换为DOM,则原始HTML格式将丢失,浏览器将不会保留原始HTML文本,因此无法从DOM API获取原始格式。
$(element).html();或者更准确地说是浏览器的dom api,将把dom元素转换回html,并使用浏览器实现者选择的格式。所以可以是、、、……
您不应该期望(甚至是中继)使用某种格式。
你的问题是,当你处理数据时,你不能正确地转义它。你必须写:
1 2 3 4
| {
"firstName":"<i class="la la-angle-double-right">"
/* ... */
} |
- 是的,你是对的,我理解,但我的阶段是将旧系统迁移到新系统,这就是为什么我要一个接一个地避免代码泄漏的原因。尽量确保没有办法,谢谢你的回答。