一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

javascript setAttribute, getAttribute 不兼容问题

时间:2010-08-05 编辑:简简单单 来源:一聚教程网

测试环境(客户端浏览器 )
ie6,ie7, ie8兼容模式, ie8
firefox 3.6.8, google chrome 5.0.375.125

先来说明两个函数的标准定义。
elementnode.setattribute(name,value)
name 必需。规定要设置的属性名。
value 必需。规定要设置的属性值。
该方法把指定的属性设置为指定的值。如果不存在具有指定名称的属性,该方法将创建一个新属性。

elementnode.getattribute(name)
name 必需。规定从中取得属性值的属性。

一、setattribute的问题
elementnode为...

希望对其增加一个单击行的事件处理函数,
写法1:
table1row1.setattribute("onclick", "selectrow1(this)");
ie8, firefox, google chrome 能正确触发click 事件
ie6,ie7则不能触发click 事件。
写法2:
table2row1.onclick = function() { selectrow2(this) };
所有测试浏览器均能触发click 事件

故为了兼容在不同的ie中,我们可以统一使用如下语句。
table2row1.onclick = function() { selectrow2(this) };


二、getattribute的问题
elementnode为 ...
先用setattribute设置属性
table1row1.setattribute("level", 1);
再用getattribute来获取标签的属性值
var level = table1row1.getattribute("level");
alert("table1row1 level:" + level + " typeof(level) = " + (typeof (level)).tostring());
在ie6,7 中显示

table1row1 level:1
typeof(level) = number

在ie8, firefox, google chrome中显示

 

table1row1 level:1
typeof(level) = string
为统一处理此两种情况,代码统一如下:
复制代码 代码如下:

var level = table1row1.getattribute("level");
if (level === undefined || level == null) {
level = "0";
}


level = level.tostring();
if (level.trim() == "") {
level = "0";

 

 

或者使用ajax方法
$addhandler 是sys.ui.domevent.addhandler 的快捷方式,它的语法为:
$addhandler(element, eventname, handler);
element 公开事件的 dom 元素。
eventname 事件的名称。
handler 要添加的事件处理程序。
前面的语句可以写成这样:
$addhandler(row,"click", function() { selectrow(this) });
下面为测试的html代码
复制代码 代码如下:




test




table1
ps教程教程e: collapse;">













no.

item

1

2c.40e80.041

2

4l.013y2.003






table2














no.

item

1

4g.0qe18.001

2

2k.61209.208




热门栏目