javascript innerHTML累加值问题~~求解
时间:2010-05-29
来源:互联网
我想实现innerHTML的累加,做了个框架,是将所有获取的元素存到数组里的,然后在使用innerHTML += ""便会出现问题:问题如下:
它们用的是统一的HTML代码
<div class="div">
<div>AAA</div>
<div>BBB</div>
<div>CCC</div>
<div>DDD</div>
</div>
/*********************************
一、传统方法,可以通过
**********************************/
二、数组方法,只能累加第一个
**********************************/
它们用的是统一的HTML代码
<div class="div">
<div>AAA</div>
<div>BBB</div>
<div>CCC</div>
<div>DDD</div>
</div>
/*********************************
一、传统方法,可以通过
**********************************/
<div class="div"> <div>AAA</div> <div>BBB</div> <div>CCC</div> <div>DDD</div> </div> <script> var dom = document.getElementsByTagName("div"); for(var i =0;i<dom.length;i++){ dom[i].innerHTML += "append"; } </script>
提示:您可以先修改部分代码再运行
/*********************************提示:您可以先修改部分代码再运行
二、数组方法,只能累加第一个
**********************************/
<div class="div"> <div>AAA</div> <div>BBB</div> <div>CCC</div> <div>DDD</div> </div> <script> var temp = []; var dom = document.getElementsByTagName("div"); for(var i =0;i<dom.length;i++){ //先把每个元素存到数组里 temp.push(dom[i]); } for(var j =0;j<dom.length;j++){ //然后从数组里调用 temp[j].innerHTML += "append"; } </script>
提示:您可以先修改部分代码再运行
//请分开测试,我求方法二的数组方式,应该如何实现方法一的功能? 提示:您可以先修改部分代码再运行
作者: wanglong8906 发布时间: 2010-05-29
我只是很奇怪,人家dom本来就是个数组,你为啥又非要再把人家重弄到temp这个数组里头...
作者: aolu11 发布时间: 2010-05-29
1.
而你的循环从0开始,一开始就改变了它内部的DOM结构,所以数组里面剩下的东西已经跟你看到的不是同一个了.所以后面的那个几个不会变.也就是你发的代码中的第二个例子为什么会这样的原因.
<div class="div"> <div>AAA</div> <div>BBB</div> <div>CCC</div> <div>DDD</div> </div> <script> var temp = []; var dom = document.getElementsByTagName("div"); for(var i =0;i<dom.length;i++){ //先把每个元素存到数组里 temp.push(dom[i]); } for(var j=1;j<dom.length;j++){ //然后从数组里调用 temp[j].innerHTML += "append"; } </script>
提示:您可以先修改部分代码再运行
2.提示:您可以先修改部分代码再运行
<div class="div"> <div>AAA</div> <div>BBB</div> <div>CCC</div> <div>DDD</div> </div> <script> var temp = []; var dom = document.getElementsByTagName("div"); for(var i =0;i<dom.length;i++){ //先把每个元素存到数组里 temp.push(dom[i]); } for(var j=dom.length;j--;){ //然后从数组里调用 temp[j].innerHTML += "append"; } </script>
提示:您可以先修改部分代码再运行
temp[0] 保存的是最外面的那个div,提示:您可以先修改部分代码再运行
而你的循环从0开始,一开始就改变了它内部的DOM结构,所以数组里面剩下的东西已经跟你看到的不是同一个了.所以后面的那个几个不会变.也就是你发的代码中的第二个例子为什么会这样的原因.
作者: faeng220 发布时间: 2010-05-30
<div class="div"> <div>AAA</div> <div>BBB</div> <div>CCC</div> <div>DDD</div> </div> <script> var temp = []; var dom = document.getElementsByTagName("div"); for(var i =0;i<dom.length;i++){ //先把每个元素存到数组里 temp.push(dom[i]); } for(var j =1;j<temp.length;j++){ //然后从数组里调用 // alert(temp[j]); temp[j].innerHTML += "append"; } temp[0].innerHTML += "append"; </script>
提示:您可以先修改部分代码再运行
提示:您可以先修改部分代码再运行
作者: xyq159589 发布时间: 2010-05-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28