HTML属性中是否允许HTML?

时间:2013-09-17 08:08:14

标签: javascript html5

例如,假设您有类似这样的内容:

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

这是否允许在HTML5中使用并在所有浏览器中正确呈现?

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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");

Live test case