首页新闻找找看学习计划

关于数组问题

0
悬赏园豆:30 [已解决问题] 解决于 2012-11-21 11:50

/**我现在想用个数组存些东西,但我不知道怎么去付值,如下面,我想把dt里的数据放到数组里然后付给id为copyshow的数据里,我下面那样写不对,求教**/

<div>

    <div id="copyshow"></div>

</div>

<dl>

<dt>数据一</dt>

<dt>数据二</dt>

<dd></dd>

</dl>

</div>

<script type="text/javascript">
    var dtshow = [];
    var dtlength = document.getElementsByTagName("dt");
    for (var i = 0; i < dtlength.length; i++) {
        dtshow.push[i];
    }
    if (dtshow != null) {
        for (var a = 0; a < dtshow.length; a++) {
            document.getElementById("copyshow").innerHTML = dtshow;
        }
    }
</script>

严文Live的主页 严文Live | 初学一级 | 园豆:11
提问于:2012-11-19 16:19
< >
分享
最佳答案
0
for (var i = 0; i < dtshow.length; i++) {
                document.getElementById("copyshow").appendChild(dtshow[i]);
            }

第一次循环不需要,第二个循环换成如上格式。另外点我

收获园豆:5
写代码的小2B | 老鸟四级 |园豆:4346 | 2012-11-19 16:37

这样也是可以的,但这样的话,效率会很低,因为每次遍历都会appendChild,这会引起浏览器不停地去计算去改变页面的结构,比较好的做法,是把要添加的内容缓存在一个变量里,然后一次性添加,这样只会引起浏览器更新一次页面

叶小党 | 园豆:481 (菜鸟二级) | 2012-11-19 16:44
其他回答(1)
1
<script type="text/javascript">
    var dtshow =new Array();
    var dtlength = document.getElementsByTagName("dt");
    for (var i = 0; i < dtlength.length; i++) {
        dtshow.push[i.InnerHTML];
    }
    if (dtshow != null&&dtshow.length>0) {
       var _dtContent="";
        for (var a = 0; a < dtshow.length; a++) {
          //这里看你怎么具体处理了,每个dt的内容是否需要换行,这里加了<br/>给你换行了
           _dtContent+=a+"<br/>";
        }
         document.getElementById("copyshow").innerHTML = _dtContent;
    }
</script>    

你的代码是错误的,循环给copyshow赋值,只会不停的替换里面的值,最终copyshow里面只保存了最后一个元素的值。

收获园豆:25
叶小党 | 园豆:481 (菜鸟二级) | 2012-11-19 16:31

弄错了本来你的才是最佳答案的

支持(0) 反对(0) 严文Live | 园豆:11 (初学一级) | 2012-11-21 11:51

@严文Live: 没关系啦~不在乎那个~嘿嘿~

支持(0) 反对(0) 叶小党 | 园豆:481 (菜鸟二级) | 2012-11-21 11:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册