iteye_4111 2008-12-26 20:48
浏览 840
已采纳

如何将数组元素写入固定的div中

请教个js的问题。有一个js数组。数组元素是对象。每个对象有名字,经纬度属性。想通过调用js函数将所有数组元素中的名字在一个div中输出。并且点击每个名字的时候又把对应的经纬度作为参数调用另外一个js函数。如何实现?用innerText不行。

  • 写回答

1条回答 默认 最新

  • xieye114 2008-12-27 11:05
    关注

    这个问题有无数种解决方案,这里仅给出一种。
    [code="java"]


    //定义全局变量 var area_arr = [ {name:'北京', x:100, y:200}, {name:'南京', x:300, y:400}, {name:'东京', x:500, y:600} ] ; //当点击li时,显示某个地区的数据 function alert_data(li){ s = li.innerHTML + ' x:' + li.getAttribute('value_x') + 'y:'+ li.getAttribute('value_y'); alert(s); } //显示所有地区,内容由全局变量提供 function display_area() { var arr = area_arr; var div = document.getElementById('div1'); var html = '<ul>'; for (var i=0, j = arr.length; i<j ; i++) { html += '<li value_x="'+arr[i].x + '" value_y="' + arr[i].y + '">' + arr[i].name + '</li>'; } html += '</ul>'; div.innerHTML = html; //下面加事件 var lis = div.getElementsByTagName('li'); for (var i=0, j=lis.length;i<j ; i++) { lis[i].onclick= function(e){alert_data(this) }; } }




    [/code]

    以上程序在ie6和firefox下测试通过

    注意点:
    1、最好给li加上a链接,对用户友好
    2、不要使用innerText,有浏览器兼容问题。
    3、事件也可以直接在html写进去。
    4、如果地区不多而且地区名唯一,就可以不给li元素加value_x和value_y属性。而是获取名称后在数组中遍历来找到其经纬度。
    5、还有很多种方法可以实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败