在需要将DOM的结构序列化为XML或HTML字符串时, 多数都会涉及遍历元素特性.
注意:
- 针对attribute对象中的特性, 不同浏览器返回的顺序不同. 这些特性在XML或HTML代码中出现的先后顺序, 不一定与它们出现在attribute对象的顺序一致.
- IE7及更早版本会返回HTML中所有可能的特性, 包括没有指定的特性. 换句话说, 返回100多个特性的情况会很常见.
代码
function outputAttributes(element) {
var pairs = new Array(),
attrName,
attrValue,
i,
len;
for(i=0, len=element.attributes.length; i < len; i++) {
attrName = element.attributes[i].nodeName;
attrValue = element.attributes[i].nodeValue;
if(element.attributes[i].specified) {
//兼容IE, 如果该属性为true则在HTML中定义了该属性
pairs.push(attrName + "=\"" + attrValue + "\"");
}
}
return pairs.join(" ");
}