<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>getAttribute()</title>
</head>
<body>
<p id="intro">课程列表</p>
<ul>
<li title="第1个li">HTML</li>
<li>CSS</li>
<li title="第3个li">JavaScript</li>
<li title="第4个li">Jquery</li>
<li>Html5</li>
</ul>
<p>以下为获取的不为空的li标签title值:</p>
<script type="text/javascript">
var con=document.getElementsByTagName("li");
for (var i=0; i< con.length;i++){
var text=con.getAttribute("title");
if(text!=null)
{
document.write(text+"<br>");
}
}
</script>
</body>
</html>
问题出在这一行代码:var text=con.getAttribute("title");
前面通过 var con=document.getElementsByTagName("li"); 获取到的con是一个数组,里面有3个li元素。而getAttribute方法操作的对象是数组中的某个元素,而不是con数组本身,改成con[i].getAttribute就好了。
应该把 var text=con.getAttribute("title");改成 var text=con[i].getAttribute("title");
你少了一个二维数组con[i]
var text=con.getAttribute("title");改成 var text[i]=con.getAttribute("title");
document.getElementsByTagName获取的是数组元素,当将其值存储在变量con中后,想再用变量con时必须加索引[i],(注意:ID获取的是一个元素;Name和TagName获取的是一组元素,即数组元素)。
for (var i=0; i< con.length; i++) { var text=con[i].getAttribute("title"); if (text !== "") { document.write(text + "<br>"); } }