Jquery变量类型问题
Jquery variable type issue
我有下面的脚本,它使用下拉索引创建对变量的引用,以在谷歌地图上绘制坐标。这些是坐标对象:
var posl0 = { lat: 53.486204, lng: -3.217980 };
var posl1 = { lat: 51.493399, lng: -2.994917 };
var posl2 = { lat: 53.328493, lng: -3.098814 };
var posl3 = { lat: 53.412157, lng: -2.838219 };
var posl4 = { lat: 53.481338, lng: -2.886647 };
var posl5 = { lat: 53.401431, lng: -2.994917 };
var posl6 = { lat: 53.513252, lng: -2.944996 };
var posl7 = { lat: 53.372710, lng: -3.183254 };
var posl8 = { lat: 53.374466, lng: -2.868754 };
这是我的脚本:
function addnewmarker(selc, mapno) {
var locaz = ["Aintree", "Formby", "Heswall", "Huyton", "Kirby", "Liverpool City", "Maghull", "West Kirby", "Woolton"];
var pos = 'posl' + mapno;
var pos.toArray();
alert(pos);
marker = new google.maps.Marker({
position: pos,
map: map,
title: 'Aintree',
animation: google.maps.Animation.DROP,
});
adsho(1);
}
我的问题似乎是使用pos
变量作为指向posl
对象的指针。如果我输入position: posl1
的位置,一切都很好,但position: pos
什么也不做,尽管它提醒相同的posl1
参考
有人能提供帮助/建议吗?
问题是因为pos
值是一个字符串,而不是对posX
变量中对象的引用。您可以使用eval()
来解决此问题,但eval()
是非常糟糕的做法,应该避免。
相反,您可以通过将所有对象放置到一个数组中,然后通过索引访问它们来实现所需的功能。类似这样的东西:
var pos = [{ lat: 53.486204, lng: -3.217980 },{ lat: 51.493399, lng: -2.994917 },{ lat: 53.328493, lng: -3.098814 },{ lat: 53.412157, lng: -2.838219 },{ lat: 53.481338, lng: -2.886647 },{ lat: 53.401431, lng: -2.994917 },{ lat: 53.513252, lng: -2.944996 },{ lat: 53.372710, lng: -3.183254 },{ lat: 53.374466, lng: -2.868754 }]
function addnewmarker(selc, mapno) {
var locaz = ["Aintree", "Formby", "Heswall", "Huyton", "Kirby", "Liverpool City", "Maghull", "West Kirby", "Woolton"];
marker = new google.maps.Marker({
position: pos[mapno],
map: map,
title: 'Aintree',
animation: google.maps.Animation.DROP,
});
adsho(1);
}
还要注意,您不需要使用jQuery的toArray()
(很可能会导致错误),也不使用locaz
数组,但我认为这只是由于对问题中的部分代码进行了编辑。
替换此行
var pos = eval('posl' + mapno);
试试这个;)
创建元素数组的方式是错误的,从数组中访问元素的方式也是错误的;
在定义数组时,可以逐个或多次将元素添加到数组中;
创建数组时有多个元素;
var array = [1, 2, 3, 4, 6, 7];/* in this way you can assign as many elements you want to add to this array array index starts from 0; */
var array = []; /* empty array later you can add elements to it */
array[0] = 1;
array[1] = 2; /* add element to directly at desired index */
array.push(1);
array.push(2);/* add element to array at the end */
所以在你的情况下,试试这个
var positions = [{ lat: 53.486204, lng: -3.217980 },
{ lat: 51.493399, lng: -2.994917 },
{ lat: 53.328493, lng: -3.098814 },
{ lat: 53.412157, lng: -2.838219 },
{ lat: 53.481338, lng: -2.886647 },
{ lat: 53.401431, lng: -2.994917 },
{ lat: 53.513252, lng: -2.944996 },
{ lat: 53.372710, lng: -3.183254 },
{ lat: 53.374466, lng: -2.868754 }];
function addnewmarker(selc, mapno) {
var locaz = ["Aintree", "Formby", "Heswall", "Huyton", "Kirby", "Liverpool City", "Maghull", "West Kirby", "Woolton"];
var pos = positions[mapno];
alert(pos);
marker = new google.maps.Marker({
position: pos,
map: map,
title: 'Aintree',
animation: google.maps.Animation.DROP,
});
adsho(1);
}
相关文章:
- 我该如何解决这个问题?“未捕获的类型错误:无法读取 null 的属性'appendChild'”
- Jquery变量类型问题
- 用Javascript为QCM动态生成问题——未捕获类型错误
- JavaScript:如何规避 NaN 问题的类型
- 对jQuery使用setTimeout()是否有任何问题;媒体查询“;类型情况
- 当我尝试在django中更新表单时,会遇到这种类型的问题
- IE 中的 Jquery 输入文件类型操作问题
- WordPress FAQ 手风琴自定义帖子类型 - 匿名函数问题.
- jsp 中的考试类型问题
- jQuery中的类型问题
- IE8 追加到 XML 问题:类型不匹配
- jQuery data() 类型转换问题
- D3 JS - 未捕获的类型错误:无法读取未定义的属性“长度” - 似乎与数据问题有关
- 数组中的类型出现问题,并尝试将内容排序到表中
- 我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题
- Dojo Dnd 问题:使用 JavaScript 通过 Dnd 项类型转换为 JSON
- 输入类型提交的 IE 问题
- 根据类别从数据库中调用不同类型的问题
- 未捕获的类型错误:对象 [对象对象] 没有方法“自动完成”(可能不是冲突问题)
- IE中对象类型的Javascript问题