<div id="holder" rel="http://mysite.com/go.jpg" rel2="42pixels" rel3="gaga">
blah
</div>
这是允许的吗?
答案 0 :(得分:2)
如果可能,我建议使用HTML5's custom data attributes来实现此目的:
<div id="holder" rel="http://mysite.com/go.jpg" data-rel2="42pixels" data-rel3="gaga">
blah
</div>
答案 1 :(得分:1)
此方案的常用方法是使用data-*
pseudo-namespace。
这不会在所有版本的HTML中验证;但它相对无害且非常方便;并且比许多其他方法好很多。
编辑:示例总是很棒:
<!-- In an HTML file loaded with AJAX, for instance: -->
<ul>
<li data-id="1">My Little Pony</li>
<li data-id="2">Transformers</li>
</ul>
答案 2 :(得分:1)
data-*
属性是添加自定义属性的正确方法,但这仅在HTML5中有效。就个人而言,我通常使用id
或class
属性来传递额外数据。在您的情况下,您甚至可以执行以下操作:
<div id="holder" class="http://mysite.com/go.jpg_42pixels_gaga">blah</div>
然后沿着这些行使用某些东西来访问这些数据:
var divParams = $("#holder").attr("class").split('_');
alert('Param 1 is: ' + divParams[0] + ' / Param 2 is: ' + divParams[1] + ' / Param 3 is: ' + divParams[2]);
当然,您可能希望使用比下划线更复杂的分隔符,以确保不会将字符串拆分错误,我只是将其用作POC。
希望这有帮助!
答案 3 :(得分:0)
不,它不会以这种方式验证:http://www.alistapart.com/articles/scripttriggers/
您可以提供自定义DTD以使其“有效”:http://www.alistapart.com/articles/customdtd/
答案 4 :(得分:0)
取决于“允许”的含义。它会工作,但你的验证将被拍摄。 class
属性旨在涵盖这些类型的扩展(虽然没有人真正将它用于除了CSS之外的任何标记,因此可以说它实际上是事实上滥用)。