jQuery Ajax возвращает данные HTML, которые невозможно проанализировать в IE - PullRequest
0 голосов
/ 27 января 2012

В Ajax Call вставлен HTML-код, как это

<div>
    <div id="one"></div>
    <div id="two"></div>
    <div id="three"></div>
</div>

В моем jQuery я пытаюсь определить элементы div, как показано ниже, и добавить их в контейнер.

$.ajax({
    url: requestURL?queryString,
    success: function (data) {
        /// i is increment by for loop ..for simplicity I am leaving that logic.
        container.add(i,$(data).children('#one').html());

        // another case
        container.add(i,$(data).children('#two').html());

        // another case
        container.add(i,$(data).children('#three').html());
    }
});

Сценарий работает в FireFox, а не в IE. Я пробовал как $(data).find('div#one') и $(data).children('div#one'), но ничего не работает.

Ценю вашу помощь

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Я поработал над этой проблемой, чтобы исправить метод children для IE.1) Я добавил DOCTYPE поверх возвращаемого HTML и очистил все пустое пространство в возвращаемом HTML.

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <div>
    <div id="one"></div>
    <div id="two"></div>
    <div id="three"></div>
    </div>

$(data).children('div#one').html(); 

работает Хорошо протестировано как в IE, так и в FireFox.

Thansk

0 голосов
/ 27 января 2012

Проверьте API .add .

Если вы передадите два параметра, .add( selector, context ), то Первый параметр должен быть строкой, представляющей выражение селектора, чтобы найти дополнительные элементы для добавления к набору соответствующих элементов. Правильно ли поступил ваш i?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...