2007年10月10日星期三

不要动态修改 DOM 里面的 id 属性

我不知道是否有什么标准规定不允许修改id属性,或者不建议修改id属性,总之IE对此支持不佳。在IE当中,修改id属性对将来的DOM操作没什么不符合标准的影响,你仍然可以通过document.getElementById()找到该元素,然后在CSS支持上就有问题了,id修改后并不会自动去重新匹配CSS规则,因此id修改后不会体现出应有的样式。

因此,进行DOM编程时应该避免修改id属性,如果需要动态改变匹配的CSS规则,就改变class属性吧。我碰到这个问题时也就是尝试通过修改id属性修改唯一匹配某个CSS过滤器的元素,结果发现修改后在IE中完全没有修改,之后改为用class属性实现同样的目的。

2 条评论:

  1. 玩过数据库的人不应该动修改id的念头,其它人也许相反 :-)

    回复删除
  2. 因为在我做的一个gadget中,我只是需要一个动态样式,并且该样式同一时间仅会应用到一个元素,因此开头想着id会比class用起来要严谨。

    回复删除