2010-07-15 4 views
0

Я немного смущен.jQuery: загрузить метод перезагрузить тот же div в div?

Я хочу, чтобы на самом деле перезагрузить одну страницу и получить div с определенным идентификатором из него. поэтому я пытаюсь перезагрузить часть веб-сайта в ту же часть веб-сайта. ;) Я знаю, это звучит странно.

как-то я не понимаю, что я делаю неправильно или лучше, как я должен это делать.

var $sv = $('#server_view'); 
$sv.load('/server/ftp/' + goToURL + " #server_view"); 

поэтому в этом случае тот же самый div загружается в тот же div, и это не то, что я хочу. тогда выглядит следующим образом:

<div id="#server_view"> <div id="#server_view"> blabla</div> blabbla </div> 

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

ответ

5

Вы можете захватить детей с селектором вы передаете в .load(), как это:

var $sv = $('#server_view'); 
$sv.load('/server/ftp/' + goToURL + " #server_view>*"); 

Все, что мы делаем разные есть чтобы все прямые дети вставлялись с помощью > child selector.

+0

это действительно сработает, но у меня теперь есть довольно проблема. если я это сделаю, заменяются только константы div. почему-то я даже не могу объяснить свою проблему. давайте попробуем: например, страница, на которой я действительно пытаюсь перезагрузить (по крайней мере, ее часть), имеет событие jquery.unload. если я просто загружаю внутренние объекты #server_view, метод выгрузки больше не будет работать. выгрузка фактически скроет() что-то внутри div im reloading. это понятно? на самом деле я не думаю. – matt

+0

Кроме того, в этом #server_view div есть ссылки, на которых есть e.preventDefault(). если я перезагружу контент один раз. функция preventDefault() больше не будет работать, и она не будет перезагружать снова. Фактически, не мой jquery больше не работает, если я перезагружаю один раз. это странно! даже если я загружаю jquery внутри head-tag. – matt

+0

@mathiregister - Если есть ссылки, которые вы хотите предотвратить по умолчанию, вам нужно будет повторно запустить обработчики ... или использовать '.live()' обработчики в первую очередь :) Событие 'unload' ... Я не совсем уверен в вашем описании, что происходит, может быть, если вы опишете это немного больше, я получу эту идею? –

2

использование .get и заменить элемент

$.get('/server/ftp/' + goToURL, function(response){ 

    var newContent = $(response).find('#server_view').html(); 

    $('#server_view').replaceWith(newContent); 


}); 
+0

Это заменяет элемент на всю страницу, он не выбирает элемент ... –

+0

Извините, не используется для запросов, отвечающих полными документами! – redsquare

0

если вы используете $('#server_view');, вы должны иметь DIV ID в server_view, не #server_view

1

Простой конец быстро.

$ ("#content") .load ("# #content> *");

+0

чувак вы мужчина, именно то, что мне нужно для этого случая! – SlickRemix

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