HTML Element对象的属性遍历

对于HTML Element对象,存在属性 attributes,包括了对象“所有”属性,通过对其遍历,可以获取我们所需要的信息,以便对DOM节点做进一步的处理,例如将DOM结构保存为XML或者字符串等。

function outputAttributes(element){
var pairs = new Array();
for(var i=0,len = element.attributes.length;i < len;i++){
var name = element.attributes[i].nodeName;
var value = element.attributes[i].nodeValue;
pairs.push(name + '=\'' + value + '\'');
}
return pairs.join(' ');
}

每一个attribute属性有一个附加属性specified,当属性是HTML Element的属性(指写在代码中可见的),或者是通过setAttribute方法进行的添加的时候,它的值为 true。IE6,IE7在执行上述代码的时候,会把很多的内置属性(如:onclick,onmouseover,tabIndex)一起列出来,这些属性的specified默认是为false。因此,修改上传代码如下:

function outputAttributes(element){
var pairs = new Array();
for(var i=0,len = element.attributes.length;i < len;i++){
var name = element.attributes[i].nodeName;
var value = element.attributes[i].nodeValue;
if(element.attributes[i].specified)
pairs.push(name + '=\'' + value + '\'');
}
return pairs.join(' ');
}


[b]例子[/b]

<div id='test' class="cls" dir="ltr" title="wott" SS='WWW' ss="ss"></div>



function fun(){
var e = document.getElementById('test');
e.setAttribute('title2', 'titlte2');
alert(outputAttributes(e));
}

未使用specified过滤:

[img]http://dl.iteye.com/upload/attachment/262079/26630ed9-29b2-3ab4-afca-24f359e85c43.bmp[/img]

使用specified过滤:

[img]http://dl.iteye.com/upload/attachment/262081/db7a0117-0992-3f59-9584-39d7425cf031.bmp[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值