HTML 属性中是否允许 HTML

Are HTML allowed inside HTML attributes?

本文关键字:HTML 属性 是否      更新时间:2023-09-26

例如,假设你有这样的东西:

<div data-object="{'str': '<h1>This is a nice headline</h1>'}"></div>

这在HTML5中是否允许,它会在所有浏览器中正确呈现吗?

编辑:正确,我的意思是浏览器将忽略并且不会以任何方式呈现H1;)

是的,只要正确引用,就允许使用。

它会渲染吗?H1元素?否 - 因为它不是一个元素,它只是div 元素属性中的一些文本。

是的,浏览器不会在属性中呈现任何 HTML 标记。当您想稍后移动元素以便它显示时,这很常见。唯一的问题是这不是一种方法,因为这不会在 DOM 中创建元素,因此它会慢得多。

尝试找到一种方法或要求另一种/更好的方法来重用加载页面时隐藏的元素。

是的,这是允许的,也是可能的,但要使其工作,您必须使用双引号使其有效 JSON:

<div data-object='{"str": "<h1>This is a nice headline</h1>"}'></div>

现在要解析它只需要:(jQuery会自己解析为JSON)

var element = $("div").eq(0);
var rawData = element.data("object");
var rawHTML = rawData["str"];
$(rawHTML).appendTo("body");

实时测试用例。