Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Добавление элемента в определенное место (https://javascript.ru/forum/events/16994-dobavlenie-ehlementa-v-opredelennoe-mesto.html)

haveFun 02.05.2011 06:00

Добавление элемента в определенное место
 
на сайте в данном разделе достаточно примитивное описание, даже не знаю, встречается ли такое в жизни.))
моя нерешаемая задача такова:
нужно воткнуть новый див перед текущим (а лучше после:) ), по нажатию на кнопку (Button)
вот мой быдлокод:
<script>
function funk(z) {
	var aaadiv = document.getElementById('aaa')
	var newdiv = document.createElement('div')
		newdiv.innerHTML = 'Новый элемент списка'
	aaadiv.insertBefore(newdiv, z)
}
</script>

<div id="aaa">
	<div>first элемент <input type="button" onClick="funk(this);return false;" value="PLUS"></div>
	<div>second элемент <input type="button" onClick="funk(this);return false;" value="PLUS"></div>
</div>

никак не могу понять, как объяснить точное местоположение куда должна добавиться новая ячейка...
хелпаните пожалуйста.

poorking 02.05.2011 07:25

Цитата:

Сообщение от haveFun
а сайте в данном разделе достаточно примитивное описание

Вранье)

> parentElem.insertBefore(newElem, target)

у вас
aaadiv.parentNode.insertBefore(newdiv, aaadiv)

haveFun 02.05.2011 16:04

простите профессор, но вы не правы. добавление должно производиться перед (после) текущего дива, а не перед всеми существующими.
именно для этого я и пытаюсь использовать this, но вот только не пойму до конца как правильнее.

poorking 02.05.2011 19:07

Цитата:

Сообщение от haveFun
простите профессор

:D
Что значит текущий див?

walik 02.05.2011 19:28

<html>
<head>
<script type="text/javascript" language="javascript">
function funk(z) {
    var aaadiv = document.getElementById('aaa')
    var newdiv = document.createElement('div')
        newdiv.innerHTML = 'Новый элемент списка'
	z.parentNode.insertBefore(newdiv, z);
}
</script>
</head>
<body id="body">
<div id="aaa">
    <div>first элемент <input type="button" onClick="funk(this*!*.parentNode*/!*);return false;" value="PLUS"></div>
    <div>second элемент <input type="button" onClick="funk(this*!*.parentNode*/!*);return false;" value="PLUS"></div>
</div>
</body>
</html>

this ссылался на input а не на DIV

haveFun 02.05.2011 19:54

poorking, текущий див - ячейка, в которой находиться инпут.
walik, спасибо, как раз эту конструкцию я и пытался понять)


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