Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   создание массива элемента select (https://javascript.ru/forum/misc/26729-sozdanie-massiva-ehlementa-select.html)

bpystep 19.03.2012 22:56

создание массива элемента select
 
есть строка, которая по нажатию кнопки преобразуется в строку с элементами <input type='text'> и одним элементом select. вопрос: как заполнить элемент select значениями?

<tr id="tr">
	<td id="login">[_login]</td> //[_login] и др. замещаются функцией str_raplace в PHP
	<td id="name">[_name]</td>	
	<td id="email">[_email]</td>
	<td id="birthday">[_birthday]</td>
	<td id="number">[_number]</td>
</tr>


function change_element() { 
	var login = document.getElementById('login');
	var name = document.getElementById('name');
	var email = document.getElementById('email');
	var number = document.getElementById('number');
	var birthday = new Array();
	for (var i = 1; i<32; i++ ) {
		birthday[i] = i;
	}
	
	$(document.getElementById('login')).remove();
	$(document.getElementById('login')).remove();
	$(document.getElementById('name')).remove();
	$(document.getElementById('email')).remove();
	$(document.getElementById('birthday')).remove();
	$(document.getElementById('number')).remove();
	
    var tr = document.getElementById('tr');
	var inputTxt = new Array();

	inputTxt[0] = '<input type="text" value='+login.innerHTML+'>';
	inputTxt[1] = '<input type="text" value='+name.innerHTML+'>';
	inputTxt[2] = '<input type="text" value='+email.innerHTML+'>';
	inputTxt[3] = '<select><option>'+birthday[].innerHTML+'</option></select>'; \\ как здесь вставить массив birthday?? пробовал с циклом не прокатило
	inputTxt[4] = '<input type="text" value='+number.innerHTML+'>';
    for (var i = 0; i<inputTxt.length; i++ ) {
		var td = document.createElement('td'); 
		td.innerHTML = inputTxt[i]; 
		tr.appendChild(td);
	}
}

monolithed 20.03.2012 08:08

Цитата:

Сообщение от bpystep
как заполнить элемент select значениями?

есть такое свойство text

option.text = 'text';

nikita.mmf 20.03.2012 09:23

можно так, если не важны значения у option'ов
...+birthday.join('</option><option>')+...

bpystep 20.03.2012 16:42

благодарю, подошло
...+birthday.join('</option><option>')+...

bpystep 20.03.2012 17:39

появился новый вопрос.
работает все как часики:
var day = new Array();
    for (var i = 1; i<32; i++ ) {
        day[i] = i;
    }
	var month = new Array();
    for (i = 1; i<13; i++ ) {
        month[i] = i;
    }
var yearGet = new Date();
	var year = new Array();
	for (i = yearGet.getFullYear() - 70; i<yearGet.getFullYear() - 9; i++) {
		year[i] = i;
	}
inputTxt[3] = '<select>'+day.join('</option><option>')+'</select><select>'+month.join('</option><option>')+'</select><select>'+year.join('</option><option>')+'</select>';

но, http://rghost.ru/37124282.view

nikita.mmf 20.03.2012 18:44

заполняйте массив с помощью метода push или через конструкцию
arr[ arr.length ] = value;

bpystep 20.03.2012 18:59

благодарю, а не можете пояснить чем push отличается от обычного задания значений массива через переменную?


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