如何实现浏览器兼容版的element.dataset
来源:互联网 发布:java注解不属于 编辑:程序博客网 时间:2024/06/05 07:40
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>element.dataset兼容</title>
</head>
<body>
<!-- 测试html -->
<div id="users" data-id="123" data-name="zqing" data-sd="">
<h2>8882人在学习该课程</h2>
<ul>
<li class="user">Satoshi</li>
<li class="user">春来草青</li>
<li class="user last">kash</li>
</ul>
</div>
<!-- 测试html -->
<script type="text/javascript">
function dataset(element){
if(element.dataset){//如果支持element.dataset
return element.dataset;//则使用W3C推荐标准
}else{//否则使用以下代码模拟实现
var attributes=element.attributes;//获取节点的所有属性
var name=[],value=[];//定义两个数组保存属性名和属性值
var obj={};//定义一个空对象
for(var i=0;i<attributes.length;i++){//遍历节点的所有属性
if(attributes[i].nodeName.slice(0,5)=="data-"){//如果属性名的前面5个字符符合"data-"
// 取出属性名的"data-"的后面的字符串放入name数组中
name.push(attributes[i].nodeName.slice(5));
//取出对应的属性值放入value数组中
value.push(attributes[i].nodeValue);
}
}
for(var j=0;j<name.length;j++){//遍历name和value数组
obj[name[j]]=value[j];//将属性名和属性值保存到obj中
}
return obj;//返回对象
}
}
//使用示例测试
var div=document.getElementById("users");
var ss=dataset(div);
</script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>element.dataset兼容</title>
</head>
<body>
<!-- 测试html -->
<div id="users" data-id="123" data-name="zqing" data-sd="">
<h2>8882人在学习该课程</h2>
<ul>
<li class="user">Satoshi</li>
<li class="user">春来草青</li>
<li class="user last">kash</li>
</ul>
</div>
<!-- 测试html -->
<script type="text/javascript">
function dataset(element){
if(element.dataset){//如果支持element.dataset
return element.dataset;//则使用W3C推荐标准
}else{//否则使用以下代码模拟实现
var attributes=element.attributes;//获取节点的所有属性
var name=[],value=[];//定义两个数组保存属性名和属性值
var obj={};//定义一个空对象
for(var i=0;i<attributes.length;i++){//遍历节点的所有属性
if(attributes[i].nodeName.slice(0,5)=="data-"){//如果属性名的前面5个字符符合"data-"
// 取出属性名的"data-"的后面的字符串放入name数组中
name.push(attributes[i].nodeName.slice(5));
//取出对应的属性值放入value数组中
value.push(attributes[i].nodeValue);
}
}
for(var j=0;j<name.length;j++){//遍历name和value数组
obj[name[j]]=value[j];//将属性名和属性值保存到obj中
}
return obj;//返回对象
}
}
//使用示例测试
var div=document.getElementById("users");
var ss=dataset(div);
</script>
</body>
</html>
0 0
- 如何实现浏览器兼容版的element.dataset
- 实现浏览器兼容版的element.dataset
- 浏览器兼容element.dataset
- 如何实现浏览器兼容版的element.children
- 实现浏览器兼容版的element.children
- 如何实现浏览器兼容版的inline-block显示
- 如何实现浏览器兼容版的window.getComputedStyle
- 实现浏览器兼容版的window.getComputedStyle
- 实现浏览器兼容版的inline-block显示
- 如何解决CSS浏览器兼容的问题
- 不同浏览器的JS如何兼容?
- 兼容浏览器的js Ajax实现
- CSS兼容实现各浏览器的透明度
- 实现ie浏览器对placeholder的兼容
- 利用滤镜实现不同浏览器的兼容
- 浏览器兼容如何IE11
- 如何实现背景透明,文字不透明,兼容所有浏览器?
- 如何让CSS的标签兼容不同的浏览器
- Python的文件操作
- 909422229________【个人理解】编译时多态与运行时多态
- prototype 是什么东西,原型链的理解,什么时候用 prototype
- git常用操作
- Java线程(八)----锁对象Lock-同步问题更完美的处理方式
- 如何实现浏览器兼容版的element.dataset
- 单例模式完整的实现
- java中的instanceof用法
- Hexo+GitHub创建网站
- Servlet之response
- Android SharedPreferences的使用.
- JS函数里的this的含义,什么情况下怎么用
- android.cts.security.SELinuxNeverallowRulesTest#testNeverallowRules**
- Hbase单机模式安装和使用