Получение только части файла из jquery ajax - PullRequest
0 голосов
/ 03 июня 2009

У меня есть очень простой пример кода:

$.ajax({
  url: 'demo2.htm',
  success: function(loadeddata){
    $("#loaded_data").after(loadeddata);
    alert('success');
  },
  error: function(){
    alert('failure');
  }
});

Загруженные данные в настоящее время возвращают все. Что мне нужно, это получить только определенный div и после него добавить его в #loaded_data.

Как мне это сделать?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 июня 2009

Вот как JQuery делает это внутренне:

$("<div/>").append(loadeddata).find('#mydiv');

Если вы ожидаете, что в HTML будут теги SCRIPT, вы должны добавить это, чтобы избежать ошибок «Отказано в доступе» в IE:

$("<div/>").append(loadeddata.replace(/<script(.|\s)*?\/script>/g, "")).find('#mydiv');

EDIT

Вы упускаете суть того, что должно происходить.

Делая $("<div/>").append(...);, jQuery создает пустышку <div> и заставляет браузер анализировать HTML-код, вставляя его в <div>. Как только это будет сделано, мы можем найти нужный DIV и вернуть HTML. Так что более правильный пример кода, который я должен был поставить выше, выглядит следующим образом:

var html = $("<div/>").append(loadeddata).find('#mydiv').html();
$('#whereIwantIt').html(html);

Как видно по ссылке, это делает то, что вы хотите .

0 голосов
/ 03 июня 2009

ОК, вот новая вставка с поиском и исправлена ​​проблема со скриптом, как упоминал Паоло.

http://jsbin.com/esoze/edit

Как видите, встроен весь HTML-код страницы, а не только указанный элемент.

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