html5 data-*自定义属性取值
demo:
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<script src="<%=path%>/js/jquery/jquery-1.8.3.min.js"> </script> </head>
<body>
<div id="divDom" data-name="userName" data-age="26" data-address="北京市">data-test</div>
</body>
<script type="text/javascript">
$(function(){//$(element).data(keyName),jquery也提供了兼容方法。
var divDom = document.getElementById('divDom'),dataSet = get_dataset(divDom);
console.info("name:"+dataSet.name);
console.info("age:"+dataSet["age"]);
});
//带兼容的函数
function get_dataset(ele){
if(ele.dataset)
return ele.dataset;
else{
//以下是兼容代码
var dataset = {};
var ele_split = ele.outerHTML.split(" ");
for(var i = 0,element; i < ele_split.length; i++)
{
element = ele_split[i];
if (element.substring(0,4) == "data") {
if (element.indexOf(">") != -1) {
element = element.split(">")[0];
};
ele_key=element.split("=")[0].slice(5);
ele_value=element.split("=")[1].slice(1,-1);
if(ele_key.indexOf("-") == -1){
dataset[ele_key] = ele_value;
}else{
ele_keys=ele_key.split("-");
ele_key=ele_keys[0];
for(i=1;i<ele_keys.length;i++){
ele_key+=replaceReg(ele_keys[i]);
}
}
};
}
return dataset;
} }
//正则表达式变换首字母大写
function replaceReg(str){
var reg = /\b(\w)|\s(\w)/g;
str = str.toLowerCase();
return str.replace(reg,function(m){return m.toUpperCase()})
}
</script>
</html>
html5 data-*自定义属性取值的更多相关文章
- HTML5常见的取值与单位
HTML5常见的取值与单位 长度单位包括 相对长度单位包括:em, ex, ch, rem, vw, vh, vmax, vmin 绝对长度单位包括:cm, mm, q, in, pt, pc ...
- jquery data方法取值与js attr取值的区别
<a data-v="3"></a> jquery data方法的运行机制: 第一次查找dom,使用attributes获取到dom节点值,并将其值存到缓存 ...
- JQuery 自定义属性取值 赋值
<span id="status_68" data-id="0" onclick="collection(68,false);" cl ...
- html5 自定义标签取值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js方法返回多值如何取值demo
js方法返回,如何取值?下面demo两种方法 new array 和 json 返回值 取值示例. 方法一: new array <html> <head> <meta ...
- CYQ.Data 快速开发之UI(赋值、取值、绑定)原理
昨夜园子猴子问了几个我CYQ.Data使用的小问题,经过简单解答后,他表示“妈妈再也不用担心我的学习",并于事后以资鼓励,希望这框架越走越好. 除了技术上的交流,双方在生活,S上面的问题上也 ...
- Data层相关问题 & JS循环取值
第一次写博客,里面是自己工作中碰到的问题及总结的知识点,便于自己以后回顾,技术大牛们请直接忽略这篇文章,也希望能帮助到想我这样的小白! Data层相关问题总结: 1. 代码管理用的是 VSS 2005 ...
- ul>li中自定义属性后取值的问题
动态赋值的li: $.ajax({ type: "POST", url: "${base}/before/subDemand/listType", succes ...
- ng2中 如何使用自定义属性data-id 以及赋值和取值操作
项目环境:ng4.x 写法说明: [attr.data-nurseKey] <div [attr.data-nurseKey]="k.nurseKey"></di ...
- python re.findall(rule,data),根据左右边界取值url中参数的值
import re ''' 取值postid,左边界"postid=",右边界"&" ''' url="http://wwww.baidu.c ...
随机推荐
- Unity&UGUI
UI:User Interface 用户交互接口,处理用户与程序直接的交互 新建一个UI控件,都会同时新建两个物体: --Canvas:画布,所有的UI控件都必须放到画布上 --EnventSyste ...
- Java System
从jdk10中摘录自认为几个比较重要的方法 系统类包含几个有用的属性和方法.它不能被实例化. 系统类提供的工具包括标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的方法: ...
- 使用html中的<input>标签上传多个文件(转)
如何使用html上传多个文件呢?我搜索中文怎么也找不到合适的,都是用js动态添加input,然后提交,不能满足我想要的——打开选择文件的窗口后可以一次性选择多个文件. 然后我尝试搜索英文"h ...
- APIView和View的区别
APIView和View的区别 API继承了View 重写了as_view方法 --豁免csrf def dispatch(self, request, *args, **kwargs): self. ...
- mysql垂直分区和水平分区
数据库扩展大概分为以下几个步骤: 1.读写分离:当数据库访问量还不是很大的时候,我们可以适当增加服务器,数据库主从复制的方式将读写分离: 2.垂直分区:当写入操作一旦增加的时候,那么主从数据库将花更多 ...
- Could not get lock /var/lib/dpkg/lock更新问题
发生于apt-get update或apt update时. 常见手段,先试试: sudo rm /var/lib/dpkg/lock sudo rm /var/lib/apt/lists/lock ...
- [剑指Offer]23-链表中环的入口节点
题目链接 https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4?tpId=13&tqId=11208&t ...
- Delphi: TGraphicControl支持PaintTo方法
Delphi之TWinControl支持PaintTo方法,可以方便的Paint有句柄控件,而此方法,TGraphicControl没有. 这使得有时需要Paint无句柄控件诸如TLabel时颇为费事 ...
- 用django实现一个资产管理的系统
整个页面的效果如下图所示 1.登陆注册页面 2.注册的页面 3.登陆页面 4.所有设备 5.正常设备页面 6.退库设备页面 7.丢失设备页面 8.导出设备的页面,仅仅在所有设备页面才支持导出按钮 9. ...
- echarts横向柱状图Demo
echarts链接:http://gallery.echartsjs.com/editor.html?c=xByfdMz7mM 代码: option = { backgroundColor: 'bla ...