<!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>"); } } </script> </body> </html> 【运行结果】 JS JQ WEB前端技术 JAVA WEB前端技术 【想实现以下效果】 JS JQ WEB前端技术 JAVA WEB前端技术
会换行是因为你先打印了所有的Li节点,即使是空的你也打印了。所以应该写判断是否为空,如果为空先赋值再打印,把你代码的顺序改下就好了。
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>"); }else{ document.write(text +"<br>"); } }
Lists[i].setAttribute("title","WEB前端技术"); 更改后的这半句话后面的分号不对,需要更改一下,不然运行不出来的