代码之家  ›  专栏  ›  技术社区  ›  Don Werve

非(X)HTML属性…有什么缺点吗?

  •  6
  • Don Werve  · 技术社区  · 16 年前

    在编写JavaScript时,我通常尝试只使用dom属性。现在我已经从原型转换到jquery,我可以从添加我自己的属性到各种DOM元素中得到一些好处,主要是在能够为处理Ajax请求建立一个非常可读的编码约定的领域。

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

    <div type="book" app_id="13">
        <a href="#" action="delete">delete</a>
    </div>
    

    然后我可以设置代码来查找所有 <a> 带标签 action 属性,查找具有 type app_id 然后做积垢手术…所有这些都不需要我编写额外的代码。

    有没有什么陷阱(除了没有严格的XHTML抱怨)我应该注意,和/或任何好习惯我应该效仿?设置我自己的属性名称空间的标准方法如何?

    4 回复  |  直到 16 年前
        1
  •  4
  •   Community CDub    8 年前

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

    新的HTML5数据属性可能正是您需要的。

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

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

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

        2
  •  6
  •   Community CDub    8 年前

    根据 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>
    
        3
  •  0
  •   BYK    16 年前

    我认为这种方法没有什么问题。实际上,我已经看到了许多这样的例子,我自己也在许多应用程序中使用了这种方法,除了验证问题之外,没有遇到任何障碍。所以我认为你有空去

        4
  •  0
  •   KyleFarris    16 年前

    我不认为添加无效属性有什么问题,除非有人使用某种未知的超严格浏览器,并且在任何非标准的地方都失败了。这可能发生,我想…但这是值得怀疑的…

    不过,一个好的选择是使用 jQuery Metadata Plugin 要从属性内部存储易于访问的键->值对。