2012-06-02 2 views
1

Я извлекаю данные HTML с помощью jQuery's .ajax() в моей программе.jQuery .find() не работает в Internet Explorer 7 и Internet Explorer 8

Все в сети Интернет   Проводник   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.

Как я могу идти о решении этой проблемы?

Вы можете посмотреть на ошибках here (хит номера для пагинации) -

Если вы отладку, то вы сможете найти свой код в строке 11949. Файл сценария будет иметь длинную странно name, поскольку он объединяет другие файлы сценариев во время выполнения.

UPDATE

Я осуществил такое же решение на локальном хосте, и он работает отлично на всех браузерах. Это проблема с сервером?

UPDATE 2

Проблема была решена, я предполагаю, что это была проблема кэширования на сервере, потому что я установил новую копию моего проекта в другом месте, и это работает прекрасно во всех браузеры.

+3

Hve вы пытались предупреждение ($ (TestData) .html()); ? – Robbie

+0

Отметьте этот ответ, это сработало для меня: http://stackoverflow.com/a/12057929/15329 –

ответ

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()); 
     ... 
}, 

Если вышеуказанное не работает, тогда возьмите hidden div. Предположим:

<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()); 
     ... 
}, 
+0

Это не нарушит работу в других браузерах, не так ли? –

+0

@Tarun нет, не проблема для каких-либо браузеров – thecodeparadox

+0

Хорошо, просто попробуйте свое решение сейчас. –

Смежные вопросы