有点混乱了,这些代码的执行顺序问题
通过innerHTML修改<h2>里的内容不是在输出<h2>之后才执行的吗,<h2>已经输出了为何还能改写?
另外一提,既然<h2>被改写了,为何原标题那里显示的是: 原标题:javascript 而不是原标题:hello world!
通过innerHTML修改<h2>里的内容不是在输出<h2>之后才执行的吗,<h2>已经输出了为何还能改写?
另外一提,既然<h2>被改写了,为何原标题那里显示的是: 原标题:javascript 而不是原标题:hello world!
2016-10-14
<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>
可将上述代码与原先代码进行对比。
个人理解:(如有理解不到位的地方,请大神指正)
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!”来绘制。
举报