2012-04-15 3 views
1

Итак, у меня есть форма, которая отправляется скрипту python через ajax. Сценарий python выводит всю HTML-страницу, которая включает в себя тип типа контента и все такое.jQuery html (text) parsing через ajax

Теперь мне нужно вставить часть текста ответа из скрипта python, элемента div, в div на текущей странице.

Как проанализировать текст ответа и удалить все ненужные джонки, такие как doctype и заголовок?

Спасибо.

+1

Можно ли изменить скрипт python, чтобы он только генерировал бит, который вы хотите? Это может быть намного эффективнее, чем делать это в браузере. – jimw

+0

Да, я понимаю, что вы говорите. Но нет, к сожалению, потому что файл python также нужно просматривать напрямую. – user14412

+0

Не могли бы вы сделать скрипт python принять аргумент, поэтому вместо GETting '/foo.py' вы GETting '/foo.py?div=id-of-div', а затем немного логики в foo.py обрабатывать его? – jimw

ответ

0

в функции успеха вы должны фильтровать результат, как этот:

success: function(r){ 
    var divContent = $(r).filter('#myDiv').html(); 
} 

Я создал рабочую скрипку для вас here.

Это решение для вашего вопроса, но jimw прав со своим комментарием об изменении сценария для вывода только контента, это было бы правильным решением.

+0

получил его, спасибо! – user14412

1

В функции Ajax вы, вероятно, есть функция успеха или что-то подобное, где выводится переменная данные, если возвращаемые данные действительны HTML, просто разобрать выход с фильтром, например, так:

$.ajax({ 
    url: "http://www.mysite.fun/html.py" 
//using the new .done() function, works the same with .success 
}).done(function (data) { 
    var element = $(data).filter(function() { 
         if (this.id=='IdOfMyDiv') return this; 
        }); 
}); 

FIDDLE

+0

Отлично, мы работаем над одним и тем же решением одновременно;) – Marc

+0

большое спасибо! хотя я пошел с изменением python в конце, но это определенно будет полезно для будущих проектов. – user14412