0

例如,假设您有这样的事情:

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

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

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

4

3 回答 3

3

是的,只要引用正确,就可以。

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

于 2013-09-17T08:11:18.797 回答
0

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

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

于 2013-09-17T08:16:14.403 回答
0

是的,这是允许和可能的,但要使其工作,您必须使用双引号使其有效 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");

现场测试用例

于 2013-09-17T08:25:57.673 回答