javascript родитеский элемент

12
D
На сайте с 14.01.2007
Offline
153
#11
burunduk:
вообще-то с точностью наоборот, результат функции как раз зависит откуда и как вы его вызываете :)

в том куске, что привёл ТС абсолютно всё равно:) и родителем у него будет всегда window

Дикий пионер:
Может ситуация правда такая сложная, я бы так сделал:
1. Проставил блокам, куда должна подгружаться инфа одинаковый класс.
2. При загрузке нашел бы все эти блоки, вытащил у них айдишники и запросил контент по айдишнику с сервера.
3. Вставил бы контент в нужный блок.

+1

[Удален]
#12

поюзай :)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html id="greatgreatgrandpa">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>DOM Level 2 Prapagation Example</title>
<script type="text/javascript" src="jquery-1.2.1.js">
</script>
<script type="text/javascript">
$(function(){
$('*').each(function(){
var current = this;
this.addEventListener('click',function(event){
say('capture for' + current.tagName + '#' + current.id + 'target is' + event.target.id);
},true);

this.addEventListener('click',function(event){
say('bubble for' + current.tagName + '#' + current.id + 'target is' + event.target.id);
},false);
});
});

function say(text) {
$('#console').append('<div >'+text+'</div>');
}

</script>



</head>

<body id ="greatgrandpa">
<div id ="grandpa">
<div id ="pops">
<img id ="vstar" src="../avatars/100x100falloutav-vb.gif" />
</div>
</div>
<div id="console"></div>
</body>
</html>
DriverCat
На сайте с 10.04.2008
Offline
116
#13
Дикий пионер:
Может ситуация правда такая сложная, я бы так сделал:
1. Проставил блокам, куда должна подгружаться инфа одинаковый класс.
2. При загрузке нашел бы все эти блоки, вытащил у них айдишники и запросил контент по айдишнику с сервера.
3. Вставил бы контент в нужный блок.

спасибо, идея хорошая, но с .ready действительно отрабатывает только последний блок.

DriverCat добавил 29.06.2011 в 14:33

сделал так


<script type="text/javascript">
$(document).ready(function() {
var oper = document.getElementById("oper").innerHTML;
var divs = document.getElementsByClassName("left_hot_aj");
for (d=0; d<divs.length; d++) {
div = divs[d];
$.ajax({
url: "/tpl/left_hot_aj.php?oper=" + oper,
cache: false,
success: function(html){
div.innerHTML = html;
}
});
}
});
</script>

но не пойму, почему срабатывает только последняя итерация, хотя, цикл работает нормально.

D
На сайте с 29.06.2011
Offline
2
#14

И в этом варианте тоже только последний будет отрабатываться. Инером текст виртуально вставляется, а не вписывается как в php. Вот он и пробегается по всем и останавливается на последнем.

DriverCat
На сайте с 10.04.2008
Offline
116
#15
Diplodok:
И в этом варианте тоже только последний будет отрабатываться. Инером текст виртуально вставляется, а не вписывается как в php. Вот он и пробегается по всем и останавливается на последнем.

но если яделаю например так


$.ajax({
url: "/tpl/left_hot_aj.php?oper=" + oper,
cache: false,
success: function(html){
divs[0].innerHTML = html;
}
});
$.ajax({
url: "/tpl/left_hot_aj.php?oper=" + oper,
cache: false,
success: function(html){
divs[1].innerHTML = html;
}
});

все работает! но меня это ествественно не устраивает так как не знаю сколько будет таких блоков

D
На сайте с 29.06.2011
Offline
2
#16

А нельзя сразу где создаются эти блоки прописывать скрипт или сперва получить страничку, а через preg_replace изменить как надо и потом только отобразить?

[Удален]
#17

DriverCat, вот такой вариант устроит? http://www.allave.ru/news.html

содержимое загружается по url ссылки?

ДП
На сайте с 23.11.2009
Offline
203
#18


<script type="text/javascript">
$(document).ready(function() {
var oper = document.getElementById("oper").innerHTML;
var divs = document.getElementsByClassName("left_hot_aj");
for (d=0; d<divs.length; d++) {
div = divs[d];
$.ajax({
url: "/tpl/left_hot_aj.php?oper=" + oper + "&id=" + id,
cache: false,
success: function(data){
$("id"+data.id).html(data.html)
},
type: 'json'
});
}
});
</script>

Можно так, но это потребует модификации серверного скрипта, чтобы он отдавал не просто html, а json из двух полей:

{ id: 34, html: "<b>..</b>"} ну или что у вас там. id возваращается тот же, что и пришел параметром в скрипт

12

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