Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Быстрое создание аналогов (https://javascript.ru/forum/misc/29097-bystroe-sozdanie-analogov.html)

max0n 14.06.2012 18:48

Быстрое создание аналогов
 
есть некая форма:

<div class="dr">
	<form name="form1" action="bascet.php" method="post">
		<div class="name">Асахи</div>
		<div class="version">Classic</div>
		<div class="choicelabel">Размер:</div>
		<div class="choice">
			<select name="size" form="data">
				<option>2000x600</option>				   
				<option>600x2000</option>				   			   
			</select>									   
		</div>
		<div class="choicelabel">Кол-во:</div>
		<div class="choice">
			<input type="text" name="count" value="1">
		</div>
		</div>
	</form>
</div>


мне нужно создать функцию, которой я передам 2 значения (которые будут выведены в html). Значения должны быть для name и version.

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

myForm('Асахи', 'Classic');


Лучше если покажете мне как выводить через переменные в нужных местах,
а не делегированием. Т.к. возможно потом понадобится подставлять части когда аналогичной функцией.

Спасибо!

lord2kim 14.06.2012 19:08

Цитата:

Сообщение от max0n (Сообщение 181461)
есть некая форма:

<div class="dr">
	<form name="form1" action="bascet.php" method="post">
		<div class="name">Асахи</div>
		<div class="version">Classic</div>
		<div class="choicelabel">Размер:</div>
		<div class="choice">
			<select name="size" form="data">
				<option>2000x600</option>				   
				<option>600x2000</option>				   			   
			</select>									   
		</div>
		<div class="choicelabel">Кол-во:</div>
		<div class="choice">
			<input type="text" name="count" value="1">
		</div>
		</div>
	</form>
</div>


мне нужно создать функцию, которой я передам 2 значения (которые будут выведены в html). Значения должны быть для name и version.

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

myForm('Асахи', 'Classic');


Лучше если покажете мне как выводить через переменные в нужных местах,
а не делегированием. Т.к. возможно потом понадобится подставлять части когда аналогичной функцией.

Спасибо!

не знаю что такое
Цитата:

Сообщение от max0n (Сообщение 181461)
а не делегированием.

пишем скрипт
<script type="text/javascript">
function paste(name, version) {
	document.getElementsByClassName("name")[0].innerHTML = name;
	document.getElementsByClassName("version")[0].innerHTML = version;
}
</script>

после div с классами name и version (как пример)
<input type="button" value="Подставить" onClick="paste('Асахи', 'Classic')">

для IE придется написать самопальную функцию для метода getElementsByClassName()
// getElementsByClassName for IE
if (typeof document.getElementsByClassName == 'undefined') {
	document.getElementsByClassName = function(classname) {
		var all = document.all,
		elements = [],
		regexpr = new RegExp('\\b'+classname+'\\b','ig');
		for(var x=0; x<all.length; x++) if (all[x].className)
		if (all[x].className.search(regexpr)!=-1) elements[elements.length] = all[x];
		return elements;
	}
}

max0n 15.06.2012 11:56

мне нужно чтобы в странице я написал n-е количество строк формата:
myForm('Колбаска', 'Варёная');
myForm('Бутылка', 'Пустая');
myForm('Карандаш', 'Масленный');

А при открытии страницы с этим кодом, создалось 3 блока с разными значениями.

lord2kim 15.06.2012 12:05

Цитата:

Сообщение от max0n (Сообщение 181615)
мне нужно чтобы в странице я написал n-е количество строк формата:
myForm('Колбаска', 'Варёная');
myForm('Бутылка', 'Пустая');
myForm('Карандаш', 'Масленный');

А при открытии страницы с этим кодом, создалось 3 блока с разными значениями.

function paste (name, version) {
	var form = document.getElementsByName("form1")[0];

	var div1 = document.createElement("div");
	div1.setAttribute("name", "name");
	div1.setAttribute("class", "class");
	div1.innerHTML = name;

	var div2 = document.createElement("div");
	div2.setAttribute("name", "name");
	div2.setAttribute("class", "class");
	div2.innerHTML = version;

	form.appendChild(div1);
	form.appendChild(div2);
}

max0n 15.06.2012 12:21

решил проблему...
способом:
function nextDoor (image, name, money){
document.write('ТЕКСТТЕКСТ'+image+'HTMLCODEhtmlcode'+name+'ANYTEXTANYTEXT'+money);
}

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

lord2kim 15.06.2012 12:24

Цитата:

Сообщение от max0n (Сообщение 181619)
решил проблему...
способом:
function nextDoor (image, name, money){
document.write('ТЕКСТТЕКСТ'+image+'HTMLCODEhtmlcode'+name+'ANYTEXTANYTEXT'+money);
}

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

document.write полностью заменит загруженную страницу...


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