27

作業中のプラットフォームの 1 つにこの小さなインタラクションを作成しました - http://jsfiddle.net/S79qp/426/

IE8 以外のすべてのブラウザで正常に動作します。コンソールを実行すると、このセクションに問題があるようです...

Array.prototype.forEach.call(l, function(item) {
        a.push(jQuery(item).text());
   });

必要なバージョンに対応できるように、誰かが IE8 に適した代替手段を教えてもらえますか?

4

5 に答える 5

45

あなたが望むのはforEach()IE8だけです:

if (typeof Array.prototype.forEach != 'function') {
    Array.prototype.forEach = function(callback){
      for (var i = 0; i < this.length; i++){
        callback.apply(this, [this[i], i, this]);
      }
    };
}

これは、それが組み込まれていないブラウザでは期待どおりに動作します。

于 2014-03-23T23:14:12.633 に答える
37

jQuery.eachメソッドを使用します。

jQuery.each(l, function(index, item){
  a.push(jQuery(item).text());
});

ターゲット配列が最初から空の場合は、代わりにjQuery.mapメソッドを使用できます。

var a = jQuery.map(l, function(item){
  return jQuery(item).text();
});
于 2013-04-24T08:23:44.013 に答える
2

実際、forEach メソッドは IE9 からのみ使用できます。古いブラウザーをサポートするには、jQuery バージョンの「each()」を使用する必要があります。

于 2013-04-24T08:24:56.820 に答える