为什么这里要写全List[i].getAttribute

来源:9-6 setAttribute()方法

abc123456789def

2017-04-26 14:57

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

写回答 关注

3回答

  • 呦呦慕粉
    2017-05-23 22:26:58
    已采纳

    首先,document.wirte()中为什么不能直接写 (text+"<br/>") ?因为,text只在第5行被赋了值,从后text是空格的属性值通过第9行赋了新的属性名和属性值,并没有改变原有位置处text也没有把新值付给新的变量。其次,是Lists[i].getAttribute("title")和Lists[i].setAttribute("title")的区别,前者是得到属性名为“title”中的属性值,而后者是用来设置新的属性名(title)和新的属性值的,document.write()括号里边的必须是可以输出的值,前者是得到了属性值,后者只是设置了属性值并没有发生“得到”这个动作。

    abc123...

    非常感谢!

    2017-05-24 14:53:17

    共 1 条回复 >

  • 慕勒7123956
    2017-04-26 19:37:41

    我觉得这个事例代码应该是有点问题的

    <!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");
        if(text=="")
        {
            Lists[i].setAttribute("title","WEB前端技术");
        
    
        }
        document.write(Lists[i].getAttribute('title')+"<br>")
        
      }
    </script>
    </body>
    </html>


  • 慕勒7123956
    2017-04-26 19:17:26

    set是设置属性值,get是获取属性值,因为text这个变量是在set之前定义的,text不会因为set而发生变化,text依然是空的,所以这时候要用Lists[i].getAttribute("title")全部写出来。

    慕勒7123... 回复abc123...

    因为元素的title值可以是空的啊,如果是空的,就对它使用set设置属性,如果不是空的,就直接document.write()

    2017-04-26 19:31:07

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题