将 jquery 元素引用传递给 vanilla javascript
我正在尝试用 javascript 做一些非常简单的事情,但无法完全理解它。我不确定应该以什么格式传递 var 地址。
$(function() {
$('.latlng').each(function(){
var address = $(this).html();
getMap(address);
});
});
function getMap(address) {
var map = new google.maps.Map(mapDiv, {
center: new google.maps.LatLng(address),
...
});
}
当我将 JQuery 引用传递给普通 javascript 时,出现错误:TypeError: 'undefined' is not an object (evaluating 'a.position=b')。任何帮助表示赞赏。
I'm trying to do something very simple with javascript but can't quite get my head around it. I'm not sure what format I should be passing the var address as.
$(function() {
$('.latlng').each(function(){
var address = $(this).html();
getMap(address);
});
});
function getMap(address) {
var map = new google.maps.Map(mapDiv, {
center: new google.maps.LatLng(address),
...
});
}
I'm getting an error when I pass the JQuery ref to normal javascript: TypeError: 'undefined' is not an object (evaluating 'a.position=b'). Any help appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果我正确地阅读了此内容并且您正确地发布了此代码,则您将传递一个持续到
getMap()
的不存在的对象,而您想要传递地址对象。如果你纠正这个问题会发生什么?jQuery 实例与所有其他实例一样只是普通的 javascript 对象,因此应该不会有问题。
If I read this correctly and you posted this code correctly, you pass a non-existing object lasting to
getMap()
, while you want to pass the address object. What happens if you correct this?jQuery instances are just normal javascript objects like all others, so there should not be a problem.
您将变量
latLng
传递给getMap
,但其值尚未设置。顶部的ready
函数应如下所示:或者,如果您尝试传递您设置的
address
变量,请使您的 ready 函数如下所示:You're passing the variable
latLng
togetMap
, but its value isn't set. Yourready
function at the top should look like this:Or, if you're trying to pass the
address
variable you set, make your ready function look like this:您的问题与 jquery 或 javascript 无关。
您向 LatLng 方法传递了错误的数据。
您需要向 LatLng 方法传入两个参数:
...
如果您尝试从文本 div 获取 LatLng 坐标,那么您需要将字符串转换为浮点数。
假设您使用以下 html:
那么这将是为每个
.latlng
列表项运行getMap()
的函数:Your issue has nothing to do with jquery or javascript.
You are passing the wrong data into the LatLng method.
You need to pass in two parameters to the LatLng method:
...
If you are trying to get your LatLng coords from a text div then you need to convert your strings into floats.
Supposing the following html is what you use:
Then this would be the function running
getMap()
for every.latlng
list item: