在编写Javascript时,我一般都试图坚持使用仅DOM属性。既然我已经从Prototype转换为jQuery,那么我可以通过将各自的属性添加到各种DOM元素中来获得一些重要的经验,主要是能够设置一个非常易读的编码约定来处理AJAX请求。
作为一个简短的例子,这意味着我做了像
这样的事情<div type="book" app_id="13">
<a href="#" action="delete">delete</a>
</div>
然后我可以设置代码以查找具有<a>
属性的所有action
代码,找到具有type
和app_id
的父代,然后执行CRUD操作......所有这些都没有我必须编写额外的代码。
我应该注意的是否有任何陷阱(除了严格的XHTML投诉除外)和/或我应该效仿的任何好习惯?设置我自己的属性名称空间的标准方法怎么样?
答案 0 :(得分:6)
根据this question,在XHTML 1.0中使用XML名称空间无效。将您自己的属性添加到同一名称空间对我来说似乎更糟糕,因为它们肯定是无效的,即使是XML也是如此。
如果我这样做,我会从class
和rel
属性中获得我的里程数。例如:
<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数据属性可能正是您所寻找的。 p>
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;值对。