2

プログラムで jQuery を使用してHTMLデータを取得.ajax()しています。

Internet Explorer 9、Chrome、Firefox、Operaではすべてが快適です。

Internet Explorer 7およびInternet Explorer 8に問題があります。

私のjQueryコードは次のとおりです。

$j.ajax({
    type:'POST',
    datatype:'HTML',
    url:processUrl,
    success:function(data){
        alert(data);
        var testdata = $j(data).find(".category-products");
        alert(testdata.html());
        $j(".col-main .category-products").empty().replaceWith(testdata);
    },
    complete: function(){
        //Doing something
    }
});

これで、警告するdataと、HTML データが取得されます (Internet Explorer 7 および Internet Explorer 8 でも同様です)。

しかし、アラートtestdataを出すnullと、Internet Explorer 7 と Internet Explorer 8 に入ります。

この問題を解決するにはどうすればよいですか?

ここでエラーを見ることができます(ページネーションの数字を押してください)-

デバッグしている場合は、11949 行目に私のコードがあります。実行時に他のスクリプト ファイルをマージしているため、スクリプト ファイルには長い奇妙な名前が付けられます。

アップデート

ローカルホストに同じソリューションを実装しましたが、すべてのブラウザーで正常に動作しています。サーバーの問題ですか?

更新 2

問題は解決しました。プロジェクトの新しいコピーを別の場所にインストールし、すべてのブラウザーで正常に動作しているため、サーバー上のキャッシュの問題だったと思います。

4

1 に答える 1

2
success:function(data){
       alert(data);
       var temp = $j('<div/>').append(data); // Here is the trick:
                                             // Set the data to a
                                             // temporary element.
       var testdata = $j(temp ).find(".category-products"); // Then find
       alert(testdata.html());
       ...
 },

上記が機能しない場合は、hiddendiv を取ります。仮定する:

<div id="imhidden"></div>

次に、次のようにします。

success:function(data){
        alert(data);
        $j('#imhidden').html(data); // Here is the trick:
                                    // Set the data to that
                                    // hidden div.

        var testdata = $j('#imhidden').find(".category-products"); // Then find
        alert(testdata.html());
        ...
},
于 2012-06-02T06:14:03.183 に答える