Adobe Spry是一个为Web设计人员开发的Ajax框架,它使得在一个HTML页面中创建丰富体验成为了可能。按说Spry是由Adobe公司开发,应该是非常强大的,但在中国却不是十分流行,可能是它的文档资料太少的缘故吧。但由于Spry是面向设计人员开发的,所以它的源码很容易看懂,对于学习来说十分合适。
以前一直在找一种能够自动获得DOM元素所有属性值的方法,今天在看Spry源码时找到了一段代码可以实现这种功能,我把它提取出来,单独作为一个函数:
function getAllAttributes(node){
var obj = {};
// 判断输入的是否是元素节点
if(Boolean(node) && node.nodeType == 1){
for(var i = 0; i < node.attributes.length; i++){
var attr = node.attributes[i];
obj[attr.name] = attr.value;
}
}
return obj;
}
比如有下面的HTML代码:
<div id="testid" style="width:100px;" title="测试">
Test
</div>
利用下面的JS代码:
console.log(getAllAttributes(document.getElementById('testid')));
可以得到JSON格式的DOM属性值:
{
id:"testid",
style:"width:100px;",
title:"测试"
}