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

为什么这么写Javascript没效果

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

<title>innerHTML</title>

<script type="text/javascript">

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

document.write("原标题:"+mychar.innerHTML+"<br>");

mychar.innerHTML="Hello world";

document.write("修改后的标题:"+mychar.innerHTML);

</script>

</head>

<body>

<h2 id="con">javascript</h2>

<p>哈撒艰苦大会是单卡寄售点卡接撒活动会计师大会开始觉得很</p>


</body>

</html>


添加回答

7回答
已采纳
编辑回答

效果图:http://img.mukewang.com/58759dc200019a1a05140210.jpg


把<script type="text/javascript">

包含在<body>里面

<!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>哈撒艰苦大会是单卡寄售点卡接撒活动会计师大会开始觉得很</p>
<script type="text/javascript">
    var mychar=document.getElementById("con");
    document.write("原标题:"+mychar.innerHTML+"<br>");
    mychar.innerHTML="Hello world";                    //修改P元素内容
    document.write("修改后的标题:"+mychar.innerHTML);
</script>
</body>
</html>

问题分析的关键点:<script>标签放在那里最合适:

javascript是顺序执行的,放在head里,如果javascript代码使用了body里的元素,如
document.getElementById("con");因为body还没载入,所以访问不到,就会出错,没有效果。

建议:最好把<script>标签放在HTML文档的最后,这样能使浏览器更快地加载页面。


5 反对 0个回复 2017-01-11
你还没有登录,请先登录注册慕课网帐号

回复
编辑回答

加window.onload

反对 0个回复 2017-09-20
你还没有登录,请先登录注册慕课网帐号

回复
编辑回答
两个关键点,第一个浏览器执行代码的顺序,是从上到下依次执行的,所以你把script标签放在head标签里面是获取不到元素的,第二个就是通过一些标签属性or事件来控制js代码的执行,如原生中的onload,jq中的ready等,多写几次就明白了,加油吧!
反对 0个回复 2017-01-11
你还没有登录,请先登录注册慕课网帐号

回复
编辑回答

楼上都对,建议看看加载顺序。

反对 0个回复 2017-01-11
你还没有登录,请先登录注册慕课网帐号

回复
编辑回答

dom的加载顺序是从上往下顺序加载,而你的js代码又是立即执行的,并不是dom加载完才执行的。所以当执行你的js代码时,你代码里获取的dom元素还没有加载出来,解决方案如下:

  1. 将script代码放在页面最后

  2. 在body上添加onload=myScript()方法,然后将script代码统一放到function myScript(){  ...  }中

反对 0个回复 2017-01-11
你还没有登录,请先登录注册慕课网帐号

回复
编辑回答

http://www.w3school.com.cn/js/js_howto.asp   

<!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>哈撒艰苦大会是单卡寄售点卡接撒活动会计师大会开始觉得很</p>
<script type="text/javascript">
var mychar=document.getElementById("con");
document.write("原标题:"+mychar.innerHTML+"<br>");
mychar.innerHTML="Hello world";
document.write("修改后的标题:"+mychar.innerHTML);
</script>
</body>
</html>

这样就可以。

1 反对 0个回复 2017-01-11
你还没有登录,请先登录注册慕课网帐号

回复
编辑回答

把script放到 body结束之后

反对 0个回复 2017-01-11
你还没有登录,请先登录注册慕课网帐号

回复

举报

0/150
提交
取消
意见反馈 常见问题 APP下载
官方微信