为了账号安全,请及时绑定邮箱和手机立即绑定

求解:下面代码为什不是将现有的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>



正在回答

4 回答

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

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


0 回复 有任何疑惑可以回复我~
#1

油泼裤带面 提问者

嗯,我得到我想要的东西了,只要把if语句里面的write移出来就可以了,text那个write取消就好了!感谢
2017-04-29 回复 有任何疑惑可以回复我~
<!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>


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

油泼裤带面 提问者

我刚才试了一下,就是说把if那段提前,将第一个write放在最后,按照JS从前到后的运行方法来说,应该是先修改后显示,但是结果还是一样的,title=JS属性还是会显示出来JS,这是为什么?
2017-04-29 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

油泼裤带面 提问者

它的输出结果是:JQ web前段技术开发 JS JAVA,上述代码我把title=JS不是已经改为“WEB前段技术开发”了吗?显示结果里面应该不会有JS才对,为什么还会出现JS?
2017-04-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信