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

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

<!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会显示在最上面?

正在回答

6 回答

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

试试,会看明白的

0 回复 有任何疑惑可以回复我~
//看注释吧!
<!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>


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

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

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

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

qq_水无声_03882251 提问者

你说的这句话很有道理“因为先执行的话并不知道<p>标签的id,所以不会显示。”
2016-09-23 回复 有任何疑惑可以回复我~

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


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

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

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

qq_水无声_03882251 提问者

我的意思是JavaScript 在innerHTML之前出现,也就是说程序按顺序执行,innerHTML还未出现时,JavaScript已经被程序读出来了才对,而innerHTML出现在第三步,于是第三步之后的程序才会被改变,不是吗?
2016-09-11 回复 有任何疑惑可以回复我~
#2

桃太郎 回复 qq_水无声_03882251 提问者

你可以找个软件单步执行试试
2016-09-11 回复 有任何疑惑可以回复我~

因为innerHTML是赋值,修改替换

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

qq_水无声_03882251 提问者

我的意思是JavaScript 在innerHTML之前出现,也就是说程序按顺序执行,innerHTML还未出现时,JavaScript已经被程序读出来了才对,而innerHTML出现在第三步,于是第三步之后的程序才会被改变,不是吗?
2016-09-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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