0

我正在尝试遍历此数组以在地图上固定,在每个浏览器中它似乎都可以正常工作,但在 IE8 中我收到错误“SCRIPT5007:无法获取属性'top'的值:对象为空或未定义”如果我将 top 更改为其他内容或将其删除,IE 只会对 left 或 name 等说同样的话。如果有人有任何建议,他们将不胜感激。

jQuery(document).ready(function(){
    var pins =  [
            { "name":"Mexico", "top":"154" , "left":"176", "imageFile":"Mexico.jpg", "soundMP3File":"Mexico_GMartinez_1.mp3", "soundOGGFile":"Mexico_GMartinez_1.ogg"},
            { "name":"Chile", "top":"261" , "left":"246", "imageFile":"Chile.jpg", "soundMP3File":"Chile_MVelasquez_1.mp3", "soundOGGFile":"Chile_MVelasquez_1.ogg"},
            { "name":"Trinidad and Tobago", "top":"182" , "left":"242", "imageFile":"TrinidadTobago.jpg", "soundMP3File":"Trinidad-Tobago_SHarris_1.mp3", "soundOGGFile":"Trinidad-Tobago_SHarris_1.ogg"},
            { "name":"Columbia", "top":"209" , "left":"227", "imageFile":"Columbia.jpg", "soundMP3File":"Colombia_JGordon_2.mp3", "soundOGGFile":"Colombia_JGordon_2.ogg"},
            { "name":"Canada", "top":"86" , "left":"208", "imageFile":"Canada.jpg", "soundMP3File":"Canada_KBretzer_1.mp3", "soundOGGFile":"Canada_KBretzer_1.ogg"},            
            ];

for(var i = 0; i < pins.length; i++)
    {
        jQuery('#map #pins-container').append('<a href="#" class="pin" style="top: ' + pins[i].top + 'px; left:' + pins[i].left + 'px;" pinindex="' + i + '" name="' + pins[i].name + '"></a>');
    }


});
4

2 回答 2

3

@Guffa 是对的。'Canada' 行的尾随逗号无效。

IE 是唯一会抱怨它的浏览器,但它在技术上到处都是无效的。

为了避免此类问题,您应该使用JSHint之类的工具,该工具将验证您的 Javascript 代码以编码常见错误,包括尾随逗号错误。

于 2013-02-25T15:06:47.217 回答
0

IE中,如果在最后一个JSON 对象后加逗号,则在IE6、IE7、IE8中会出现错误。

所以,当你编写 Javascript、JSON 时,永远记住这一点

于 2013-02-25T17:46:34.547 回答