Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавить элементу родителя (https://javascript.ru/forum/misc/40845-dobavit-ehlementu-roditelya.html)

clampson 21.08.2013 20:25

Добавить элементу родителя
 
Привет всем, два вопроса, первый и собственно главный - как прикрепить к div'у div родителя ? И второй, как получить все дочерние div'ы у определённого div'a чтобы потом можно было пробежаться по этому списку?

Яростный Меч 21.08.2013 21:07

1) parentDiv.appendChild(...) / parentDiv.insertBefore(...)
2) myDiv.getElementsByTagName(...)

clampson 21.08.2013 21:50

Цитата:

Сообщение от Яростный Меч (Сообщение 268667)
1) parentDiv.appendChild(...) / parentDiv.insertBefore(...)

что то я не разберусь никак, можешь на примере?
Вот как в такой ситуации, поместить два последних дива в родительский при этом не нарушая очерёдность?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <TITLE>HTML  документ</TITLE>


<script type="text/javascript">
 
window.onload = function () {
	var myDiv = document.getElementById('work');
	var divs = myDiv.getElementsByTagName("div");
    var length = divs.length;
    var class_list = ["class1", "class2", "class3", "class3", "wersdfs" ];
	var class_iter = 0;

	for (var i = 0; i < length; i++) {
     
		divs[i].className =class_list[class_iter];
		class_iter+=1;
	};
};
</script>

    </HEAD>
<BODY>
<div id="work">
	
  <div>
    <a href="#">111</a>
  </div>	
	
  <div>
    <a href="#">111</a>
  </div>

  <div>
    <a href="#">111</a>
  </div>
	
</div>
</BODY>
</HTML>

рони 21.08.2013 23:13

Цитата:

Сообщение от clampson
поместить два последних дива в родительский при этом не нарушая очерёдность?

это как?

clampson 22.08.2013 03:39

Цитата:

Сообщение от рони (Сообщение 268690)
это как?

вот так:
<div id="work">
	
  <div>
    <a href="#">111</a>
  </div>	
  
  <div class="parent">
    <div>
      <a href="#">111</a>
    </div>

    <div>
      <a href="#">111</a>
    </div>
  </div>
	
</div>
</BODY>
</HTML>

ksa 22.08.2013 09:25

Цитата:

Сообщение от clampson
вот так:

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.parent {
	border: 1px solid;
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div id="work">
  <div>
    <a href="#">000</a>
  </div>	
  <div>
    <a href="#">111</a>
  </div>
  <div>
    <a href="#">222</a>
  </div>
</div>
<script type="text/javascript">
var od=document.getElementById('work');
var oe=od.getElementsByTagName('div');
var o=document.createElement('div');
o.className='parent';
o.appendChild(oe[1]);
o.appendChild(oe[1]);
od.appendChild(o);
</script>
</body>
</html>

clampson 22.08.2013 17:19

Цитата:

Сообщение от ksa (Сообщение 268728)
Как вариант...

<script type="text/javascript">
var od=document.getElementById('work');
var oe=od.getElementsByTagName('div');
var o=document.createElement('div');
o.className='parent';
o.appendChild(oe[1]);
o.appendChild(oe[1]);
od.appendChild(o);
</script>

Спасибо, годный вариант :) вот только можно как то сказать appendChild в какое место добавлять новенький div (или может есть какой нить insertChild, как то не хочется делать ещё один цикл для расфасовки)? Он ведь стыкует его в конец, а от этого нарушается логика страницы ...

Яростный Меч 22.08.2013 17:28

Цитата:

Сообщение от clampson
вот только можно как то сказать appendChild в какое место добавлять новенький div (или может есть какой нить insertChild

я, кажется, что-то говорил про insertBefore...

clampson 22.08.2013 17:34

Цитата:

Сообщение от Яростный Меч (Сообщение 268813)
я, кажется, что-то говорил про insertBefore...

:) каюсь, зазевал его, большое спасибо!

clampson 22.08.2013 17:47

доки insertbefore ... Выходит когда идёшь по циклу, нужно транзитную ноду сохранять. Какое упущение что нет индексов


Часовой пояс GMT +3, время: 00:09.