javascript将id值放入变量中
我使用api获取了一些访问我页面的人的信息。数据以JSON格式返回,我使用.html函数将内容设置为一些ID,如下所示:javascript将id值放入变量中,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我使用api获取了一些访问我页面的人的信息。数据以JSON格式返回,我使用.html函数将内容设置为一些ID,如下所示: $.getJSON("http://ip-api.com/json/?callback=?", function (data) { $("#lat").html(data.lat); $("#lon").html(data.lon); }); 使用: <p id="lat"></p> <p id="lon"></p
$.getJSON("http://ip-api.com/json/?callback=?", function (data) {
$("#lat").html(data.lat);
$("#lon").html(data.lon);
});
使用:
<p id="lat"></p>
<p id="lon"></p>
在我的html正文中,我可以看到数据已经设置并打印在我的浏览器中
我的问题是如何检索从IDs打印到另一个单独变量中的数据,以继续使用/传递到其他函数?我尝试过使用不同的函数,如getElementById()
等,但都没有成功。您可以使用它来获取元素的内容
例如:
var someHtml = "<p>Hello world!</p>";
$(someElement).html(someHtml);
// This will set the html to be "<p>Hello world!</p>"
alert( $(someElement).html() );
// This will return "<p>Hello world!</p>" in the alert box!
然后可以使用coords.lat
和coords.lon
这么说吧!
实际上没有理由根据HTML元素的值设置coords
变量。即使必须显示它们,也最好直接从API响应保存变量,以节省一些毫秒
所以你可以这样做:
var coords = {};
$.getJSON("http://ip-api.com/json/?callback=?", function (data) {
$("#lat").html(data.lat);
$("#lon").html(data.lon);
coords = { 'lat' : data.lat, 'lon' : data.lon };
});
编辑:
根据您的-您的错误来自两个地方:
1.您试图在渲染#map
div之前影响它
首先,将所有脚本移动到HTML下方的,这样您的
就在
旁边
第22-27行变成:
<table id="GeoResults"></table>
<p id="lat"></p>
<p id="lon"></p>
<div id="map"></div>
所以这显然是行不通的——只需移动这些线,直到定义了纬度之后,你就成了黄金
可以使用获取元素的内容
例如:
var someHtml = "<p>Hello world!</p>";
$(someElement).html(someHtml);
// This will set the html to be "<p>Hello world!</p>"
alert( $(someElement).html() );
// This will return "<p>Hello world!</p>" in the alert box!
然后可以使用coords.lat
和coords.lon
这么说吧!
实际上没有理由根据HTML元素的值设置coords
变量。即使必须显示它们,也最好直接从API响应保存变量,以节省一些毫秒
所以你可以这样做:
var coords = {};
$.getJSON("http://ip-api.com/json/?callback=?", function (data) {
$("#lat").html(data.lat);
$("#lon").html(data.lon);
coords = { 'lat' : data.lat, 'lon' : data.lon };
});
编辑:
根据您的-您的错误来自两个地方:
1.您试图在渲染#map
div之前影响它
首先,将所有脚本移动到HTML下方的,这样您的
就在
旁边
第22-27行变成:
<table id="GeoResults"></table>
<p id="lat"></p>
<p id="lon"></p>
<div id="map"></div>
所以这显然是行不通的——只需移动这些线,直到定义了纬度之后,你就成了黄金
为什么不直接在变量中存储data.lat
和data.lon
呢?你想通过元素的id来获取元素的html?为什么不直接在变量中存储data.lat
和data.lon
呢?你想通过元素的id来获取元素的html吗?谢谢你的建议,我已经尝试了.html()功能就像你在发布这个问题之前所说的一样,现在又尝试了一次,但不幸的是它不起作用。当尝试使用document.write(coords.lat)或console.log(coords.lat)打印变量时,我得到了一个“未定义”的值。有趣的是,您能为我们创建一个示例吗?还是提供更多的代码?@bf16在确定调用了getJSON
之后,您使用了console.log()
?没有理由它应该填充html元素而不保存变量您可能想查看如何调试变量的详细信息。这是我的完整代码:,我基本上需要分别在var city Longitude/latitude字段中传递lon和lat变量谢谢您的建议,我尝试了.html()功能就像你在发布这个问题之前所说的一样,现在又尝试了一次,但不幸的是它不起作用。当尝试使用document.write(coords.lat)或console.log(coords.lat)打印变量时,我得到了一个“未定义”的值。有趣的是,您能为我们创建一个示例吗?还是提供更多的代码?@bf16在确定调用了getJSON
之后,您使用了console.log()
?没有理由它应该填充html元素而不保存变量您可能想查看如何调试变量的详细信息。这是我的完整代码:,我基本上需要分别在var city Longitude/latitude字段中传递lon和lat变量