问答详情
源自:3-3 innerHTML 属性

感觉你们都懂了只有我不懂啊!帮帮忙吧!

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>innerHTML</title>
</head>
<body>
<h2 id="con">javascript</H2>
<p> JavaScript是一种基于对象、事件驱动的简单脚本语言,嵌入在HTML文档中,由浏览器负责解释和执行,在网页上产生动态的显示效果并实现与用户交互功能。</p>
<script type="text/javascript">
  var mychar=document.getElementById("con")           ;
  document.write("原标题:"+mychar.innerHTML+"<br>"); //输出原h2标签内容
  mychar.innerHTML="Hello world"
  document.write("修改后的标题:"+mychar.innerHTML); //输出修改后h2标签内容
</script>
</body>
</html>

不是说按顺序执行吗?所以结果按道理应该是:

1.javascript

2.原标题:javascript
3.修改后的标题:Hello world

这样才对啊,就算是mychar.write="Hello word" 替换,那也是发生在第三步啊,

为什么Hello world会显示在最上面?

提问者:qq_水无声_03882251 2016-09-09 16:20

个回答

  • qq_张浩_7
    2016-10-26 15:10:09

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>innerHTML</title>
    </head>
    <body>
    <h2 id="con">javascript</H2>
    <p> JavaScript是一种基于对象、事件驱动的简单脚本语言,嵌入在HTML文档中,由浏览器负责解释和执行,在网页上产生动态的显示效果并实现与用户交互功能。</p>
    <script type="text/javascript">

      function fu(){

          var mychar=document.getElementById("con");

          document.write("原标题:"+mychar.innerHTML+"<br>"); //输出原h2标签内容

          mychar.innerHTML="Hello world!";

          document.write("修改后的标题:"+mychar.innerHTML); //输出修改后h2标签内容

      }

      var panduan=confirm("确定修改h2标题吗?");

      if(panduan){

        fu();

      }

      </script>
    </body>
    </html>

    试试,会看明白的

  • 初级搬砖
    2016-09-22 20:31:59

    //看注释吧!
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset=utf-8" />
    <title>innerHTML</title>
    </head>
    <body>
    <h2 id="con">javascript</H2>
    <script type="text/javascript">
      var mychar= document.getElementById("con")          ;//1.mychar="javascript"
      document.write("原标题:"+mychar.innerHTML+"<br>"); //2.输出原标题:javascript
      mychar.innerHTML="Hello World!";//3.替换<h2>"javascript"为"Hello World!"
      document.write("修改后的标题:"+mychar.innerHTML); //4.输出修改后的标题:"Hello World!" 然后再加载<head>
    </script>
    </body>
    </html>


  • MTzl
    2016-09-22 17:42:01

    原因分析:其实并不是先执行<script>中的内容,可以验证:【如果先执行<script>中的内容】 1)将<script>...</script>整块剪切到<head>中去,就没有显示效果。2)将<p>..</p>内容剪切到</script>标签后,同理。因为先执行的话并不知道<p>标签的id,所以不会显示。

    结论:是执行到给mychar重新赋值时改变的。

  • 慕工程3314271
    2016-09-18 19:15:14

    innerHTML在JS是双向功能:获取对象的内容  或  向对象插入内容; 第一个是获取,获取

    <h2 id="con">javascript</h2>,

    <script type="text/javascript">

      var mychar=document.getElementById('con')  

    document.write("原标题:"+mychar.innerHTML+"<br>");

    第二个是插入内容插入

    mychar.innerHTML='Hello world!'

      document.write("修改后的标题:"+mychar.innerHTML);


  • 桃太郎
    2016-09-11 15:37:03

    innerHTML 属性用于获取或替换 HTML 元素的内容,在你执行 mychar.innerHTML="Hello world"时。“<h2 id="con">javascript</H2>”中的内容已经替换为Hello world

  • qq_helloworld_19
    2016-09-09 17:07:32

    因为innerHTML是赋值,修改替换