博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

(五)获取和设置节点属性

Posted on 2011-03-06 00:14  xuld  阅读(1294)  评论(1编辑  收藏  举报

获取一个节点的属性很简单, elem[ attrName ]  似乎就好,

稍复杂点的还可以是 elem.getAttribute( attrName );

既然这么简单,似乎就没必要介绍了。

但万恶的浏览器们让这么简单的东西变得很复杂。

 本文讲的属性包括以下这么函数:

setAttribute

getAttribute

hasAttribute

setStyle

getStyle

1. getAttribute

   getAttr 主要解决特殊属性的兼容, 比如 href src 等属性,在 IE 必须使用 getAttrbute('src', 2) 才能获取真实内容。

2. setAttribute

   setAttr 设置元素属性, 一般也可直接使用 系统的 setAttribute 就好

3. getStyle

  getStyle 不是仅仅简单的获取节点的 style 属性的值,因为有些css属性在css定义,这些属性不会在 style 属性得到。对于IE,使用

node.currentStyle 获取当前属性值。对于 其它浏览器,使用 window.computeStyle(node, null); 获取 (第2个参数是伪类) 几乎所有框架都在getStyle同时,对属性名进行规则重写, 如 font-size -> fontSize  这样 就可以方便获取同名css 。

有些特殊属性是不能正常获取的(比如得到 auto) IE下肯能得到不是 px 结尾的单位, 所以在jQuery专门对这种情况处理。方法是 通过 runtimeStyle.pixelLeft 和   runtimeStyle.left  协调  巧妙计算。( 见 jQuery 源码 )

4. setStyle

  setStyle 就是 定义 style 内的值。 对于数字,需人为地加 'px'。