我可以在HTML标签中添加额外的东西,以便我的JQuery可以接收它吗?

时间:2010-12-01 12:53:58

标签: javascript html css templates

<div id="holder" rel="http://mysite.com/go.jpg" rel2="42pixels" rel3="gaga">
blah
</div>

这是允许的吗?

5 个答案:

答案 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中有效。就个人而言,我通常使用idclass属性来传递额外数据。在您的情况下,您甚至可以执行以下操作:

<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之外的任何标记,因此可以说它实际上是事实上滥用)。