非(X)HTML属性......任何缺点?

时间:2009-04-22 19:49:12

标签: jquery html xml xhtml namespaces

在编写Javascript时,我一般都试图坚持使用仅DOM属性。既然我已经从Prototype转换为jQuery,那么我可以通过将各自的属性添加到各种DOM元素中来获得一些重要的经验,主要是能够设置一个非常易读的编码约定来处理AJAX请求。

作为一个简短的例子,这意味着我做了像

这样的事情
<div type="book" app_id="13">
    <a href="#" action="delete">delete</a>
</div>

然后我可以设置代码以查找具有<a>属性的所有action代码,找到具有typeapp_id的父代,然后执行CRUD操作......所有这些都没有我必须编写额外的代码。

我应该注意的是否有任何陷阱(除了严格的XHTML投诉除外)和/或我应该效仿的任何好习惯?设置我自己的属性名称空间的标准方法怎么样?

4 个答案:

答案 0 :(得分:6)

根据this question,在XHTML 1.0中使用XML名称空间无效。将您自己的属性添加到同一名称空间对我来说似乎更糟糕,因为它们肯定是无效的,即使是XML也是如此。

如果我这样做,我会从classrel属性中获得我的里程数。例如:

<div class="book" id="book_13">
   <a href="http://example.com/url/to/delete/non/ajaxily" class="delete">delete</a>
</div>

答案 1 :(得分:4)

Can I store custom attributes in HTML DOM like a database record?

新的HTML 5数据属性可能正是您所寻找的。

http://ejohn.org/blog/html-5-data-attributes/

http://dev.w3.org/html5/spec/Overview.html#custom

我知道它不是“XHTML”,但至少它是某些标准的一部分;)

答案 2 :(得分:0)

我认为这种做法没有错。实际上我已经看到了很多这方面的例子,我自己在许多应用程序中使用了这种方法,并且除了验证问题之外没有遇到任何障碍。所以我认为你可以自由地去=)

答案 3 :(得分:0)

我没有看到添加无效属性有什么问题,除非有人使用了一些超级严格的未知浏览器,并且对任何非标准的浏览器都失败了。我想这可能会发生......但这是值得怀疑的......

但是,一个不错的选择是使用jQuery Metadata Plugin来存储属性中易于访问的key-&gt;值对。