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

如何将数组元素写入固定的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 计算二重积分∫∫e^(x+y)dxdy,其中0≤x≤1,0≤y≤1,试分别用复合辛普森公式(取n=4)以及高斯求积公式(取n=4)计算积分 给出matlab程序
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的