1.为HTML元素添加一自定义的属性非常方便,只须将其加到尖括号中即可,与内置属性地位相等。
如我们要为TextBox元素添加属性idvalue:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
idvalue即可正式成为txtInput的属性,地位与其他属性相等。
如以下例子,在IE6中调试通过:
<html>
<head>
<title>自定义属性</title>
<script language="javascript">
function showText()
{
alert(document.getElementById("txtInput").value);
}
function showValue()
{
alert(document.getElementById("txtInput").idvalue);
}
</script>
</head>
<body>
<input type="text" id="txtInput" name="txtInput" value="自定义文本" idvalue="自定义值">
<input type="button" id="btnShowText" name="btnShowText" value="显示文本内容" onclick="showText();">
<input type="button" id="btnShowValue" name="btnShowValue" value="显示文本值" onclick="showValue();">
</body>
</html>
但idvalue在Firefox中却不能通过,主要是因为Firefox控制严格,所以这些自定义属性不能认识。经过调试,只能用document.getElementById("txtInput").attributes["idvalue"].nodeValue取得,该方法在IE中也可使用。所以,同时适用IE和Firefox的代码为:
<html>
<head>
<title>自定义属性</title>
<script language="javascript">
function showText()
{
alert(document.getElementById("txtInput").value);
}
function showValue()
{
alert(document.getElementById("txtInput").attributes["idvalue"].nodeValue);
}
</script>
</head>
<body>
<input type="text" id="txtInput" name="txtInput" value="自定义文本" idvalue="自定义值">
<input type="button" id="btnShowText" name="btnShowText" value="显示文本内容" onclick="showText();">
<input type="button" id="btnShowValue" name="btnShowValue" value="显示文本值" onclick="showValue();">
</body>
</html>
2.js赋值
前面说过为HTML元素添加自定义的属性,是通过手动在HTML控件中加上,其实可以在javascript中动态添加:如有一文本框:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
如想增加idvalue属性(值为”自定义值”),可以在javascript中这样写:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
setAttribute中第一个参数是指明自定义属性的名称,第二个参数是初始值
代码如下:
<html>
<head>
<title>用javascript添加控件自定义属性</title>
<script language="javascript">
function addCustomAttribute()
{
var txt = document.getElementById("txtInput");
txt.setAttribute("idvalue","自定义值");
}
function showIdValue()
{
var txt = document.getElementById("txtInput");
alert(txt.attributes["idvalue"].nodeValue);
}
</script>
</head>
<body onload="addCustomAttribute();">
<input type="text" id="txtInput" name="txtInput" value="自定义文本">
<input type="button" value="显示idValue" onclick="showIdValue();">
</body>
</html>