2011-02-17 17 views
0

我正在使用Google地圖來計算城市之間的距離。我需要使用該距離值進行一些基本計算。距離必須採用「盎格魯美洲」格式(1,234.00),但採用公制。因此,對於馬德里谷歌地圖的答案 - 柏林查詢將是這兩者之一:替換字段中的點和逗號,然後使用該值自動填充使用jquery的另一個字段

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」或「名稱「屬性。

我想做到的是:

1)轉換這些谷歌地圖的距離值「英美」格式(2320公里)或(甚至更好)格式,而不千位分隔符它只會用點作爲小數點分隔符( 2320.1公里)

2)使用的是過濾值來填充稱爲距離

我找遍所有網站上的文本字段,但沒有找到確切的答案。這個職位是最有幫助的:

Populate hidden form element value with the value of a text field on form submit (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> 

回答

1

搶值:

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

要本地化:

var parts = dist.split(','); 
dist = parts[0].replace('.','') + '.' + parseInt(parts[1],10); 
+0

不,這不是目的。其實,我想抓取一個值jstcache = 7或jstcache = 23。或者使用「jscontent = ..」值。這是問題之一,谷歌地圖總距離以這種方式打印出來,並附在這樣的代碼中,我不確定什麼是拉出該值的最佳方式。 – Marco 2011-02-17 21:02:53

+0

@Marco,在這種情況下(更新),我只是簡單地說了一個`=`。請注意,選擇器適用於'span',其`jstcache`屬性爲'7' - * not *'jstcache`元素。 – 2011-02-17 21:08:01

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> 
相關問題