PHP + JS getElementById().值返回int而不是float


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

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

我试图从PHP/HTML在javascript中使用getElementByID().value .

然而,即使PHP中的值是一个小数,在JS中它也是一个int。我需要得到浮点值,因为这些是谷歌地图上的位置坐标。

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

网页输出示例:53.9933371,-6.3912622和控制台LAT:: 53 LON:: -6

我做错了什么?我怎么能得到浮点值在JS?

UPDATE:

元素的属性值

  • 不是您想要的那种值。"此整数属性指示元素定义的列表项的当前序数值。"所以我猜它是四舍五入的。

    请使用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);