关于js中setAttribute的问题,小白提问大神请进

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

最后的document.wirte()中为什么不能直接写 (text+"<br/>")  而要Lists[i].getAttribute("title")全部写出来,如果全部写出来为什么不是Lists[i].setAttribute("title")

text是普通类型,不是object之类的引用类型,你setAttribute后是不会更新text的值的,需要重新获取值才能得到最新的值。当然你重新getAttribute更新text后再输出也行

     if(text=="")
    {
    Lists[i].setAttribute("title","WEB前端技术");
        text = Lists[i].getAttribute("title");///////////
    document.write(text+"<br>");
    }