请教个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、还有很多种方法可以实现。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报