2014-03-27 79 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

相關問題