Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2011, 13:57
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

jquery не срабатывает find после ajax
Добрый день,прошу помощи тк не знаю в какую сторону копать. Вкратце я хочу получить аяксом страницу с того же домена,выбрать нужный мне блок и вставить его в блок который есть у меня на странице.
вот пример
function ajax(){
			$.ajax({ url: "http://192.168.1.35/flashtest/test_site/dinosaurs.html", success: function(data, d2, d3){
				$('#main').append($(data).find('#main'));
			}});
		}

после success в дата я имею нужный документ, но после $(data).find('#main') мне возвращается [] вроде как он такого элемента не находит. Пробовал делать через load вот так
function live(){
			console.log($('#main').load('http://192.168.1.35/flashtest/test_site/dinosaurs.html #main'));
		}

все отрабатывает правильно как я и хочу
Например на сайте http://pjax.heroku.com/ все срабатывает с find нормально, не пойму почему у меня не работает,я даже пробовал подключать их версию жкуери. Прошу помощи никак не могу понять почему это не работает хотя должно. В прикрепленном файле выложу простейший пример. Пока покопаюсь внутри жкуери посмотрю как работают эти функции
Вложения:
Тип файла: zip test_ajax.zip (1.5 Кб, 6 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2011, 15:27
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

1) надо добавлять к main текст а не пытаться переместить dom элемент из текста в браузер.

function live(){
			console.log($('#main').load('dinosaurs.html #main'));
		}
		function ajax(){
			$.ajax({ url: "dinosaurs.html", success: function(data, d2, d3){				
				var  text=$(data).find("#main").html();
			   //$('#main').append(text);
                $('#main').html(text); // эта строка поудачнее так как заменит содержимое, а не добавит
			}});
}


2) файл dinosavr.html нужно переделать. Помести в динозвре main внутрь другого дива тогда всё будет ок. а иначе он просто не найдёт main. и Body ты кстати забыл.

<div>
<div id="main">
  

<ul>
  <li><a href="/">home</a></li>
  <li>dinosaurs</li>
  <li><a href="/aliens.html">aliens</a></li>
</ul>

<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/GcjxwXCxBBU" frameborder="0" allowfullscreen></iframe>

</div>
</div>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 09.09.2011 в 16:17.
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2011, 15:38
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

DjDiablo
если бы я хотел добавить текст,то я использовал бы аналог innerHTML для заполнения блока, я хочу добавить именно объект дом append судя по докам http://api.jquery.com/append/ может принимать параметром его
contentDOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements.

я не пытаюсь переместить дом елемент из текста как Вы написали, я же его прогоняю через $(data) значит я на выходе должен иметь dom объект вот в нем я и хочу искать и вставлять
Вы пробовали запустить код который написали он не работает аналогично тому,что дал я, срабатывает одинаково.
Что значит динозавр косячный? хтмлка не моя,я просто стащил ее с сайта который указал в примере и где именно с этой хтмлкой работало
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2011, 15:58
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

у меня работает сейчас скину.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2011, 16:00
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

повторюсь,что файл не мой, согласен,что боди отсутствует это странно. После добавления оборачивающего дива все заработало это факт, но почему find не может найти #main если тот просто внутри боди? ведь load обрабатывает все правильно? да и эта хтмлка используется на сайте который я приводил в первом посте и там find нормально разбирает содержимое без боди и оборачивающего дива
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2011, 16:00
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Да вот фиг его знает почеу в body ненаходит. Ежу ясно что должен.

на выходе ты должен получить не dom элемент а некоторое внутреннее представление о нём в jquery. Но об этом элементе, браузер в любом случае нечего незнает. Одним словом jquery судя по всему перемещает только элементы который есть в dom дереве браузера. Возможно в новых версиях Jquery, эту проблему решили. Я просто обошёл её вставляя текст а не Dom элемент.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 09.09.2011 в 16:13.
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2011, 16:09
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

с оборачиванием блоком мне не подойдет тк мне нужно будет выбирать все содержимое боди + работать с содержимым хеда. Load не подходит тк он сразу грузит все в блок,а мне нужно в переменную которую я буду чуть изменять... Есть ли способ преобразовать полученный ответом текст в Dom ведь load это как-то делает?
Ответить с цитированием
  #8 (permalink)  
Старый 09.09.2011, 16:20
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

понял в чем там фишка,спасибо за помощь,ставлю плюс
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Click() не работает на объекте, созданном Ajax vovabigov jQuery 13 09.09.2012 14:25
Конфликт AJAX и Jquery Кирюха =) AJAX и COMET 15 08.08.2011 13:36
JQuery AJAX, поймать разрыв соединения ilya.tk AJAX и COMET 10 30.12.2010 17:13
Не работает jQuery меню с AJAX eugene1986 jQuery 0 08.07.2010 18:49
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23