我正在尝试使用getElementByID().value
在javascript中从PHP / HTML中获取价值。
但是,即使PHP中的值是十进制值,在JS中它也是一个int。 我需要获得浮动值,因为它们是Google地图上位置的坐标。
以下是PHP部分:$lat
和$long
是十进制数字(我试图用点替换comas而不是结果
echo '
<ul id="cordinates">
<li id="lat" value="',$lat,'"></li>
<li id="lon" value="',$long,'"></li>
</ul>';
这是JS部分:
var lat = (document.getElementById('lat').value);
var lon = (document.getElementById('lon').value);
console.log("LAT:: "+lat);
console.log("LON:: "+lon);
网站上的示例输出: 53.9933371, -6.3912622并在控制台LAT :: 53 LON :: -6
我做错了什么? 我如何在JS中获得浮点值? 任何提示对我都有很大的帮助,谢谢。
答案 0 :(得分:3)
更新:
元素的属性值&lt; li>不是你想要的那种价值。 “这个整数属性表示元素定义的列表项的当前序数值。”Mozilla reference所以我想它会被舍入或者其他东西。
请使用data- *属性存储坐标:
var lat = (parseFloat(document.getElementById('lat').dataset.value));
var lon = (parseFloat(document.getElementById('lon').dataset.value));
并将您的javascript修改为:
echo '
<ul id="cordinates">
<li id="lat" data-value="',$lat,'">',$lat,'</li>
<li id="lon" data-value="',$long,'">',$lon,'</li>
</ul>';
我真的不懂PHP,但我认为你应该把它改成这个:
var lat = (parseFloat(document.getElementById('lat').value));
var lon = (parseFloat(document.getElementById('lon').value));
console.log("LAT:: "+lat);
console.log("LON:: "+lon);
原始回答:
使用parseFloat() - Reference
private XmlDocument GetRootLevelServiceDocument(
string serviceEndPoint, string oAuthToken)
{
XmlDocument xmlDoc = new XmlDocument();
HttpWebRequest request = CreateHttpRequest(serviceEndPoint,
oAuthToken);
using (HttpWebResponse response =
(HttpWebResponse)request.GetResponse())
{
using (XmlReader reader =
XmlReader.Create(response.GetResponseStream(),
new XmlReaderSettings() { CloseInput = true }))
{
xmlDoc.Load(reader);
string data = ReadResponse(response);
if (response.StatusCode != HttpStatusCode.OK)
{
LogMsg(string.Format("Error: {0}", data));
LogMsg(string.Format(
"Unexpected status code returned: {0}",
response.StatusCode));
}
}
}
return xmlDoc;
}