Как получить через DOM элемент, подгруженный AJAX

DriverCat
На сайте с 10.04.2008
Offline
116
3211

Собственно сабж. Ссылка допустим подгружается через AJAX. Не удается получить ее через DOM.

Таггу x_x
На сайте с 31.10.2005
Offline
445
#1
DriverCat:
Не удается получить ее через DOM.

Каким образом пытаетесь?

☠️☠️☠️
DriverCat
На сайте с 10.04.2008
Offline
116
#2
Tarry:
Каким образом пытаетесь?

пытаюсь обычным способом document.getElementById(link_id), по другому не знаю как, так как ни разу не сталкивался с такой задачей.

C
На сайте с 28.01.2010
Offline
70
#3

Как-то так. Только название файла в $.load подставить нужно вместо test.html чтобы пример работал.

<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>

<div style="display:none;">
<a id="link" href="#">test</a>
</div>

<div id="se"></div>

<script>
// загружаем содержимое аяксом
$('#se').load('test.html #link', function() {
// получаем содержимое контейнера
alert($('#se').text());
});
</script>
</body>
</html>
Это - личная подпись. Здесь обычно ставят ссылки на всякие кривые сайты, надеясь получить "жирный бек".
DriverCat
На сайте с 10.04.2008
Offline
116
#4
Counselor:
Как-то так. Только название файла в $.load подставить нужно вместо test.html чтобы пример работал.

<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>

<div style="display:none;">
<a id="link" href="#">test</a>
</div>

<div id="se"></div>

<script>
// загружаем содержимое аяксом
$('#se').load('test.html #link', function() {
// получаем содержимое контейнера
alert($('#se').text());
});
</script>
</body>
</html>

спасибо за пример, только я подгружаю контент не с помощью jquery , а простым скриптом :

function createHttpRequest() {

var httpRequest;
var browser = navigator.appName;

if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}
return httpRequest;
}
function getXmlHttp(){
var xmlhttp;
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
httpRequest = false;
}
}
if (!httpRequest && typeof XMLHttpRequest!='undefined') {
httpRequest = new XMLHttpRequest();
}
return xmlhttp;
}

function getRequest() {
if (httpRequest.readyState == 4) {
var html = httpRequest.responseText;
document.getElementById(resultId).innerHTML = html;
}
}

не хочется все переделывать из-за этой небольшой проблемы.

Таггу x_x
На сайте с 31.10.2005
Offline
445
#5
DriverCat:
Ссылка допустим подгружается через AJAX. Не удается получить ее через DOM.

Вы ваш код не можете сюда скопировать? Непонятно же ничего.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

В jquery есть такой обработчик live(); которые в реальном времени опрашивает страницу. А так просто запрос идёт на старый вариант, без подгруженных данных.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
C
На сайте с 28.01.2010
Offline
70
#7
DriverCat:
спасибо за пример, только я подгружаю контент не с помощью jquery , а простым скриптом :

...

не хочется все переделывать из-за этой небольшой проблемы.

Ну т.к. запрос идет асинхронно, то скорее всего ты получаешь dom-дерево быстрее, чем запрос получает данные и вставляет их в dom.

Попробуй сделать искусственную задержку, или сделать чтобы в получаемых данных шел дополнительный скрипт, ну и что-то типа document.write('<script>...</script>');

DriverCat
На сайте с 10.04.2008
Offline
116
#8

сделал по - другому: вставил в html код, который передается через ajax javascript функцию для работы с необходимыми мне в этом коде элементами dom, вот только чтобы этот javascript код сработал пришлось использовать функцию отсюда: http://reposlav.livejournal.com/2480.html

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий