在HTML
标签中存储相关信息是一个好的做法吗?
$("#my_div").append("<span id='info' boo='foo'/>");
$("#info").attr("boo");
我在
TAL
中(在ZPT
中)遇到过这种技术(并稍微借用了它),您可以使用tal:attributes
语句修改HTML
标记(例如,将boo
变量的值从后端传递到最终文档中作为属性值呈现):<span id='info' tal:attributes='boo view/boo'>
结果:
<span id='info' boo='foo'>
这种技术会在某一天破坏一个文档吗,或者按照规范它是安全的?
最佳答案
正确的方法是使用data-*属性:
http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes
另外,jquery还有一个处理这些问题的特殊方法。例如:
<p id='string' data-user_name='thedude'></p>
$('#string').data('user_name') => "thedude"
typeof $('#string').data('name') => "string"
<p id='number' data-user_id='12345'</p>
typeof $('#number').data('user_id') => "number"
<p id='boolean' data-user_is_active='true'></p>
typeof $('#boolean').data('user_is_active') => "boolean"
<p id = 'json' data-user='{"name": "the dude", "id": "12345"}'></p>
typeof $('#json').data('user') => "object"
// embedding JSON is extremely useful in my experience