Justeasy
2018-01-24 11:03
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<p id="intro">我的课程</p>
<ul>
<li title="JS">JavaScript</li>
<li title="JQ">JQuery</li>
<li title="">HTML/CSS</li>
<li title="JAVA">JAVA</li>
<li title="">PHP</li>
</ul>
<h1>以下为li列表title的值,当title为空时,新设置值为"WEB前端技术":</h1>
<script type="text/javascript">
var Lists=document.getElementsByTagName("li");
for (var i=0; i<Lists.length;i++)
{
var text = Lists[i].getAttribute("title");
document.write(text+"<br />");
if(text=="")
{
Lists[i].setAttribute("title","WEB前端技术");
document.write(Lists[i].getAttribute("title")+"<br>");
// document.write("aaa"+"<br />");
}
}
</script>
</body>
</html>
代码如上:为啥会空多一行输出,我测试过如果输出语句是放在IF里面的话会出现这种情况,否则不会。
var text = Lists[i].getAttribute("title");
document.write(text+"<br />");//当i循环为2和4时,text="",此时输出空+换行(相当于document.write(""+"<br />")),所以会空出一行。
把这一行写在if-else语句的else里就不会空出一行
for (var i=0; i<Lists.length;i++)
{
var text = Lists[i].getAttribute("title");
if(text=="")
{
Lists[i].setAttribute("title","WEB前端技术");
document.write(Lists[i].getAttribute("title")+"<br>");
// document.write("aaa"+"<br />");
}else{
document.write(text+"<br />");
}
}
var text = Lists[i].getAttribute("title");
document.write(text+"<br />");
就这两行,你的就算text是空的,也会输出一次
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题