设置html标签的自定义属性
我们可以设置html标签的自定义属性,例如:
<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <script type="text/javascript" src="jquery-1.11.1.js"></script> <script type="text/javascript" src="common_util.js"></script> <title>自定义属性</title> <script type="text/javascript"> $(function (event) { $('#firstLi').attr('title','这是title').attr('abc','062'); }) var getLiValue=function (event) { var source=event.target; $(source).parent().append('<div>'+$('#firstLi').attr('abc')+'</div>') } </script> </head> <body> <ul> <li id="firstLi" >畅捷通信息技术股份有限公司安保部</li> <li></li> </ul> <div> <div onclick="getLiValue(event)" >获取li的abc属性</div> </div> </body> </html>
我设置了li标签的自定义属性,名称是"abc"(见上例),理论上,我可以设置任意名称的自定义属性,我想叫什么名字就叫什么名字.
自定义属性是相对于内置属性来说的,
内置属性比如 class,style,title等
如何设置自定义属性呢?
使用jQuery有两种方式:
(a)使用attr方法
$('#firstLi').attr('title','这是title').attr('abc','062');
attr有两个参数,第一个参数表示自定义属性名称,第二个参数表示要设置的自定义属性值
(b)使用data方法
设置值:
$('#firstLi').data('id','888');
但是注意一点:使用data设置自定义属性值,在html代码中是看不到的.
使用原生js方法设置自定义属性
/*** * set custom attribute * @param htmlNode22 * @param attr22 * @param attrValue */ com.whuang.hsj.setCustomAttr=function(htmlNode22,attr22,attrValue) { if('length' in htmlNode22){ htmlNode22=htmlNode22[0]; } if(htmlNode22.setAttribute===undefined) { htmlNode22.attributes[attr22].nodeValue = attrValue; }else{ htmlNode22.setAttribute(attr22,attrValue); // 设置自定义属性的值 } };
获取自定义属性值:
/*** * get custom attribute * is same as jquery attr().eg:var inputId=$(this).attr('targetTF'); * @param htmlNode22 * @param attr * @returns {*} */ com.whuang.hsj.getCustomAttr=function(htmlNode22,attr) { if('length' in htmlNode22){//jquery 对象 htmlNode22=htmlNode22[0]; } var hospitalId=htmlNode22[attr]; if(hospitalId==undefined||hospitalId==null){ hospitalId=htmlNode22.getAttribute(attr); } if(hospitalId==undefined||hospitalId==null){ if(htmlNode22.attributes){ hospitalId=htmlNode22.attributes[attr].nodeValue; } } return hospitalId; };
下面着重介绍一个设置自定义属性的坑
ul 中的li定义的value会自动转换为int.数值,ie 浏览器下大于int最大值,显示int最大值,其他浏览器显示为0.而且无论你定义什么值,都会转int.默认为1,例如value=中文。所以如果你想要实现正确取值,就需要换一个li属性例如自定义属性time.或者改一种实现标签元素,例如div.都可以
参考:
html li标签设置value诡异的问题
http://blog.csdn.net/hw1287789687/article/details/51426825(
IE8 兼容性问题
)
相关推荐
STPace 2020-05-25
tthappyer 2020-01-17
yezi 2019-11-04
Imfondof 2015-06-15
JavaJspSsh 2019-09-08
wysjwh 2019-09-06
wangnantjobj 2019-07-01
cohciz 2019-07-01
攻城师 2019-06-29
gaohongijj 2016-08-01
impress 2019-06-28
wcssdu 2019-06-28
notepaper 2016-04-07
wenhuadream 2015-03-26
瞌睡虫 2011-03-20
selt 2014-08-14
尚衍亮 2019-06-26