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

有点混乱了,这些代码的执行顺序问题

通过innerHTML修改<h2>里的内容不是在输出<h2>之后才执行的吗,<h2>已经输出了为何还能改写?

另外一提,既然<h2>被改写了,为何原标题那里显示的是:     原标题:javascript    而不是原标题:hello world!

正在回答

6 回答

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

可将上述代码与原先代码进行对比。

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

个人理解:(如有理解不到位的地方,请大神指正)

1、页面渲染完成后进行页面绘制;

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

上述JavaScript代码是在页面渲染过程中执行的;

2、“按引用传递”,id为con的<h2>标题和mychar是同一个引用(可以理解为指向同一个内存地址的指针)。

mychar.innerHTML="Hello world!";语句改变了mychar所指向内存地址中存储的值(由javascript”变为了“Hello world!”),那么在绘制id为con的<h2>标题时,也会按“Hello world!”来绘制。

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

哈哈兄弟不错,自己能悟到一些,不过还不够,我要给你来个画龙点睛:去查查“按值传递”与“按引用传递”!瞬间明悟!

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

坚持MyDream 提问者

好的,我去看看,谢谢提点
2016-10-17 回复 有任何疑惑可以回复我~

大概懂了,  innerHTML是 获取和修改  Object标签内容的,也就是说  第一个document.write处是获取Object标签内容修改前的值,获取到值之后跟Object标签之间不会互相影响。

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

感觉修改内容这点有点像  初始化  ,初始化要放到 head标签里

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

原因是先执行Object.innerHTML修改内容是吗

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

举报

0/150
提交
取消
JavaScript入门篇
  • 参与学习       739974    人
  • 解答问题       9566    个

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

进入课程

有点混乱了,这些代码的执行顺序问题

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