问答详情
源自:9-6 setAttribute()方法

求解:下面代码为什不是将现有的title属性改变,而是在原有的属性后面添加了一个新的属性title,setAttribute不是可以将现有的属性改变或者将没有的属性添加进去吗?

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



提问者:油泼裤带面 2017-04-24 18:14

个回答

  • 慕勒7123956
    2017-04-29 12:42:54
    已采纳

    因为你输出的是text,这个text变量没变啊,应该是

    document.write(Lists[i].getAttribute('title')+"<br>")


  • 慕勒7123956
    2017-04-29 12:45:04

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


  • 慕勒7123956
    2017-04-29 11:57:59

    你上面已经有了一个documen.write()了,所以在判断之前就会输出啊

  • 慕勒7123956
    2017-04-26 19:25:52

    并没有定义新属性啊,setAttribute修改的就是title的值啊,没有新定义title啊,一个Lists[i]只有一个title属性