Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2012, 14:59
Профессор
Отправить личное сообщение для bpystep Посмотреть профиль Найти все сообщения от bpystep
 
Регистрация: 06.08.2010
Сообщений: 161

Вставить элемент на определенное место
Добрый день.
существует вот такая конструкция:
<form mothod="post" action="admin.php" id="forma">
    <div><input type="text" id="id_1"></div>
    <div><input type="text" id="id_2"></div>
    <a href="#" onClick="addProperty()">Добавить</a>
</form>


Задача состоит в том чтобы по клику вставлялся еще один
<div><input type="text" id="id_3"></div>


Но вставлялся после второго дива: т.е. получалось бы так:

<form mothod="post" action="admin.php" id="forma">
    <div><input type="text" id="id_1"></div>
    <div><input type="text" id="id_2"></div>
    <div><input type="text" id="id_3"></div>
    <a href="#" onClick="addProperty()">Добавить</a>
</form>


function addProperty() {
	var form = event.target.parentNode;
	while (!(form instanceof HTMLFormElement)) {
		form = form.parentNode;
	}
	
	var elem = document.createElement('div');
		elem.style.border = '1px solid #ff0000';
		elem.innerHTML = 'blablabla';
	form.appendChild(elem);
}


как указать позицию дочернего элемента?
Может быть взять все дочерние элементы, и с помощью массива переставить местами последний(elem) и предпоследний элемент(<a></a>)?
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2012, 15:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от bpystep Посмотреть сообщение
Добрый день.
существует вот такая конструкция:
<form mothod="post" action="admin.php" id="forma">
    <div><input type="text" id="id_1"></div>
    <div><input type="text" id="id_2"></div>
    <a href="#" onClick="addProperty()">Добавить</a>
</form>
Сама по-себе уже не удачная конструкция для вставки... Гораздо удобнее такая

<form mothod="post" action="admin.php" id="forma">
    <div id='container'>
         <div><input type="text" id="id_1"></div>
         <div><input type="text" id="id_2"></div>
    </div>
    <a href="#" onClick="addProperty()">Добавить</a>
</form>


Т.о. просто добавляя элемент в #container ты получаешь нужный эффект.
Ответить с цитированием
  #3 (permalink)  
Старый 14.08.2012, 15:24
Профессор
Отправить личное сообщение для bpystep Посмотреть профиль Найти все сообщения от bpystep
 
Регистрация: 06.08.2010
Сообщений: 161

Спасибо, все получилось так как хотел! +
Ответить с цитированием
  #4 (permalink)  
Старый 14.08.2012, 15:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

bpystep, но можно сделать и на твоей конструкции...

<!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">
</style>
<script type="text/javascript">
function addProperty() {
	var of=document.getElementById('forma');
	var all=of.getElementsByTagName('div').length;
	var oa=of.getElementsByTagName('a')[0];
	var od=document.createElement('div');
	var o=document.createElement('input');
	o.type='text';
	o.id='id_'+(++all);
	od.appendChild(o);
	of.insertBefore(od,oa);
}
</script>
</head>
<body>
<form mothod="post" action="admin.php" id="forma">
	<div><input type="text" id="id_1"></div>
	<div><input type="text" id="id_2"></div>
	<a href="#" onClick="addProperty()">Добавить</a>
</form>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 14.08.2012, 16:03
Профессор
Отправить личное сообщение для bpystep Посмотреть профиль Найти все сообщения от bpystep
 
Регистрация: 06.08.2010
Сообщений: 161

Спасибо что потраченное время, но мне очень хорошо подходит вариант с контейнером, просто и понятно, и получилось все универсально (под другие скрпты хорошо подошло).
Ответить с цитированием
  #6 (permalink)  
Старый 14.08.2012, 16:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от bpystep
хорошо подходит вариант с контейнером, просто и понятно
Разумеется.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить элемент пред другим элементом? Dudo4nick Events/DOM/Window 7 07.12.2011 13:51
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10
Вставка элемента в место вызова функции belkir Элементы интерфейса 21 05.08.2011 08:59
Вставить число в элемент div KamalovRadik Javascript под браузер 6 03.08.2011 13:12
Добавление элемента в определенное место haveFun Events/DOM/Window 5 02.05.2011 19:54