“this”为null或给出错误 - JavaScript冒险:)

时间:2011-04-11 05:35:01

标签: javascript google-maps

我正在学习JavaScript,并慢慢地逐渐理解为什么某个页面不起作用:)

我正在做这样的事情:

<a onClick="removeAllMarkers(this)" href="#" >Remove All Markers</a>

认为发送这个是正确的方法。但我认为我并不真正理解“这”在我目前的情况中的作用。

当我按下此页面上“清除所有标记”的链接时,我收到了JavaScript控制台错误: http://www.comehike.com/outdoors/trees/add_spotted_trees.php?hike_id=108

该页面具有登录凭据:test@comehike.com |密码

任何想法我从根本上做错了什么以及清除标记[]数组的最佳方法是什么?

我目前正在做这样的事情:

if (markers)
{
    for (i in markers)
    {
         markers[i].setMap(null);
         markers[i] = null;
    }
}

但遗憾的是,这正是出现错误的部分。建议? :)

这是页面

2 个答案:

答案 0 :(得分:3)

将数组元素设置为null不会将其从数组中删除。


要清除数组,请将变量指定给新的空数组:

markers = [];

或将其length属性设置为0:

markers.length = 0;

在循环遍历数组并在每个数组上调用.setMap(null)后执行此操作。


仅删除数组中的最后一项:

markers.pop();

答案 1 :(得分:2)

有关详细信息,请参阅: