<!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会显示在最上面?
<!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>
试试,会看明白的
//看注释吧! <!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>
原因分析:其实并不是先执行<script>中的内容,可以验证:【如果先执行<script>中的内容】 1)将<script>...</script>整块剪切到<head>中去,就没有显示效果。2)将<p>..</p>内容剪切到</script>标签后,同理。因为先执行的话并不知道<p>标签的id,所以不会显示。
结论:是执行到给mychar重新赋值时改变的。
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);
innerHTML 属性用于获取或替换 HTML 元素的内容,在你执行 mychar.innerHTML="Hello world"时。“<h2 id="con">javascript</H2>”中的内容已经替换为Hello world
因为innerHTML是赋值,修改替换