猿问

求解答,为什么编译结果是helloworld在第一行,就是输出修改后的在第一行?

<!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> hello</p>

<script type="text/javascript">

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

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

  mychar.innerHTML="helloworld";

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

</script>

</body>

</html>



qq_舞魅_03747602
浏览 1274回答 2
2回答

stone310

说下输出步骤吧,从上往下执行,位置排序分别是:首先是1、<h2 id="con">javascript</H2>;其次是2、<p> hello</p>;再次是3、document.write("原标题:"+mychar.innerHTML+"<br>"); (这里document.write 处于页面载入状态,因此是增加,而不是覆盖),这里mychar.innerHTML还是“javascript“再次是4、mychar.innerHTML="helloworld";,这一条一旦执行,就会覆盖第一条<h2>标签的内容;再次是5、document.write("修改后的标题:"+mychar.innerHTML); (同理,document.write增加不覆盖),由于第4步,覆盖了mychar.innerHTML,因此这里是"helloworld"执行完毕,所以现在界面显示:1、<h2 id="con">helloworld</H2>;(被上面第四条更改了内容)2、<p> hello</p>;3、document.write("原标题:"+mychar.innerHTML+"<br>");(显示更改前的内容,即javascript)4、document.write("修改后的标题:"+mychar.innerHTML); (显示更改后的内容,即helloworld)

霜花似雪

这个与标签属性的优先级有关,优先级高的,最先调用,也就最先输出。
随时随地看视频慕课网APP
我要回答