2014-03-27 51 views
0

我有下面的代码块在IE9正常工作JQuery .forEach在IE8中不受支持。有没有解决办法?

data.forEach(function loadClips(value) { 
    //console.log("URL of the show is " + value.Images[0].Url); 
    var href = '/video/player.aspx?vid=' + value.Id; 
    var title = value.ShortDesc; 


"</a></li>");       


}) 

但它不能在IE8工作。而不是.forEach,我试过.each(),它也不起作用。关于什么是正确的解决方案应该是什么想法?非常感谢

+3

'forEach' ISN” t是jQuery的一部分;这是一种JavaScript'Array'方法,在早期的JS版本中不可用。那,以及'.each()'不工作的事实,让我觉得你有一个普通的JS数组,而不是一个jQuery对象。数据来自哪里? –

+0

var data = d.Items。我相信这是一个数组也许 – doglin

回答

2

这应该做到这一点(不要忘记在最后一个分号)

$.each(data, function loadClips(value) { 
    //console.log("URL of the show is " + value.Images[0].Url); 
    var href = '/video/player.aspx?vid=' + value.Id; 
    var title = value.ShortDesc; 


"</a></li>");       


}); 
+2

我想你的意思是:'$ .each(data,function(){...});' –

+0

...或$(data).each(...)',这在jQuery版本中不太可靠。你绝对*不*意味着使用''data''作为一个字符串,因为编辑现在正在进行。 –

+0

不,使用$ .each并没有很好的工作,所以“价值”是未定义的。因为数据实际上是一个数组。我想为了使它工作,我不能再使用.forEach了。我将不得不通过一个正常的循环来迭代它 – doglin

1

forEach不是一个jQuery功能。请参阅支持Array.prototype.forEach

相反,你可以使用

$(array).each(function (index, item) { doSomething(item); });

See documentation

+1

你不应该在数组上使用'$ .fn.each()',而只能在像jq集那样的对象数组上使用 –

+0

是的,我不应该这样做,但是我可以使用'$ .fn.each' – lante

+0

只是误读的问题,因为数据似乎是一组匹配的元素,但不知道它的确是什么,DOM节点数组,DOM节点列表或什么。但是这就是说,使用一个没有被特别设置用于特定元素的方法可能会导致不期望的结果。在jQuery DOC中:'Description:遍历一个jQuery对象,为每个匹配的元素执行一个函数 –

1

我只是重复它通过传统的for循环,因为假设的forEach和工作了IE8

相关问题