0

我正在使用谷歌地图来计算城市之间的距离。我需要使用该距离值进行一些基本计算。距离必须采用“英美”格式 (1,234.00),但采用公制。因此,Google 地图对马德里 - 柏林查询的回答将是以下两个之一:

a) <span jscontent="distance['text']" jsdisplay="distance" jstcache="7">2.320,1 km</span>
b) <span jscontent="distance.text" jstcache="23">2.320,1 km</span>

请注意跨度“类”(jstcache 为 7 或 23)的差异以及缺少任何“id”或“name”属性。

我想要完成的是:

1)将这些谷歌地图距离值转换为“英美”格式(2,320 公里)或(甚至更好)格式,没有千位分隔符,仅使用点作为小数分隔符(2320.1 公里)

2) 使用该过滤值填充名为距离的文本字段

我搜索了整个网络,但没有找到确切的答案。这篇文章是最有帮助的:

使用表单提交(jQuery)上的文本字段的值填充隐藏的表单元素值

它在自动填充部分帮助了我一点,但我不能让它与这个谷歌地图代码结合使用。这是我当前的代码:

<head>
...
<script type="text/javascript">
function submitMyForm(){
$('#distance').val($('jstcache^=7').val());
$('#Googlemap').submit();
}
</script>
...
</head>

<body>
...
<form id="myform">
<input type="text" id="distance" name="distance" value="" />
</form>
...
</body>
4

2 回答 2

1

获取价值:

var dist = $('span[jstcache=7]').val();

本地化:

var parts = dist.split(',');
dist = parts[0].replace('.','') + '.' + parseInt(parts[1],10);
于 2011-02-17T20:57:17.983 回答
1

通常,您可以使用 javascript 字符串 .replace() 函数来执行此操作。在这种情况下,它有点棘手,因为你正在做一个交换:逗号换逗号,逗号换句号。这意味着您必须使用中间值。使用下划线的工作示例如下:

<script type="text/javascript">
function submitMyForm(){
    var val = $('[jstcache=7]').text(); // get text content of <span jstcache="7">

    // Replace using regex instead of strings, to catch more than the first match
    val = val.replace(/\./g, "_");
    val = val.replace(/,/g, ".");
    val = val.replace(/_/g, ",");

    $('#distance').val(val);
    $('#Googlemap').submit();
}
</script>
于 2011-02-17T21:00:46.020 回答