设置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