【问题标题】:Get value from brackets from an onclick从 onclick 中获取括号中的值
【发布时间】:2013-04-18 17:44:24
【问题描述】:

是否可以从onClick 函数中获取经纬度?

<a href="javascript:void(0)" onClick="findLocation('6.443663,3.419248');return false;" id="Lagos">Lagos, Nigeria</a>

<a href="javascript:void(0)" onClick="findLocation('3.15021, 101.707703');return false;" id="Kuala">Kuala Lupar, Malaysia</a>

<a href="javascript:void(0)" onClick="findLocation('24.9952447639, 55.0559356887');return false;" id="Dubai">Dubai, U.A.E.</a>

如果可能,我希望将 findLocation 函数中的数字放入每个位置的数组中。

添加备注 findLocation 函数在地图上绘制我的位置并专注于该位置。我需要尝试从每个 onClick 获取纬度和经度,并以某种方式在页面加载时绘制我的点。

function findLocation(address) {
    var address = document.forms[0].q.value = address;
    geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });
//          marker.setMap(null);
        } else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
    });
}

【问题讨论】:

  • 为什么你传递一个字符串而不是每个数字作为单个参数?
  • @FelixKling 我有一张空白的地图,当点击链接时,谷歌地图会绘制并专注于该位置。我试图通过从findLocation() 中提取坐标来默认显示所有位置
  • 啊,所以你真的想遍历所有链接元素并解析onClick 属性值?这些链接是如何生成的?我会采用完全不同的方法并将坐标存储在按位置键入的地图(对象)中。然后,您可以轻松地遍历所有坐标,并在需要时使用 findLocation 查找特定坐标。
  • html标记是给定的还是你自己生成的?
  • @FelixKling 我已经更新了我的代码,以便您了解 findLocation 的作用。地图链接是静态而不是动态生成的

标签: jquery


【解决方案1】:

你在寻找类似的东西

var obj = {};
$('a').each(function(){
    var $this = $(this);
    var text = $this.attr('onClick').replace('findLocation(\'', '').replace('\');return false;', '');
    var array = text.split(',')
    obj[this.id]= [parseFloat(array[0]), parseFloat(array[1])];
});
console.log(obj)

演示:Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2021-03-18
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 2011-02-01
    • 1970-01-01
    相关资源
    最近更新 更多