PHP+JS getElementById().value return int 而不是 float

PHP+JS getElementById().value return int instead of float

编辑:抱歉,由于某些原因 PHP 部分未正确显示

我正在尝试使用 getElementByID().value.

从 javascript 中的 PHP/HTML 获取值

然而,即使PHP中的值是十进制的,在JS中它是一个int。 我需要获取浮点值,因为它们是 Google.

地图上位置的坐标

这是 PHP 部分:$lat$long 是十进制数(我试图用点替换逗号也没有结果

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);

Example output on the webside: 53.9933371, -6.3912622 and in the console LAT:: 53 LON:: -6

我做错了什么? 如何在 JS 中获取浮点值? 任何提示都会对我有很大帮助,谢谢。

更新:

属性 元素

  • 的值不是您想要的那种值。 "This integer attribute indicates the current ordinal value of the list item as defined by the element. " Mozilla reference 所以我猜它是圆的还是什么的。

    请使用data-*属性存储坐标:

    <ul id="cordinates">
        <li id="lat" data-value="52.0193">52.0193</li>
        <li id="lon" data-value="23.2413">23.2413</li>
    </ul>
    

    并将您的 javascript 修改为:

    var lat = (parseFloat(document.getElementById('lat').dataset.value)); 
    var lon = (parseFloat(document.getElementById('lon').dataset.value)); 
    

    我真的不知道PHP,但我认为你应该把它改成这样:

    echo '
    <ul id="cordinates">
    <li id="lat" data-value="',$lat,'">',$lat,'</li>
    <li id="lon" data-value="',$long,'">',$lon,'</li>
    </ul>';
    

    原始答案:

    使用 parseFloat() - Reference

    var lat = (parseFloat(document.getElementById('lat').value)); 
    var lon = (parseFloat(document.getElementById('lon').value)); 
    console.log("LAT:: "+lat); 
    console.log("LON:: "+lon);