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

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

1个回答

这个问题有无数种解决方案,这里仅给出一种。
[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、还有很多种方法可以实现。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问