Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2018, 12:51
Новичок на форуме
Отправить личное сообщение для w03zd8rc Посмотреть профиль Найти все сообщения от w03zd8rc
 
Регистрация: 18.10.2018
Сообщений: 2

Добавление select элемента в таблицу
Добрый день!
Пытаюсь через JS добавить селект в ячейку таблицы. Делаю так:
cell = row.insertCell(0);
cell.innerHTML = "<select name='name' style='width: 100%'>";
cell.innerHTML += "<option value='0'></option>";
cell.innerHTML += "<option value='872'>1</option>";
cell.innerHTML += "<option value='799'>2</option>";
cell.innerHTML += "<option value='1057'>3</option>";
.... <очень много элементов>
cell.innerHTML += "</select><br/>";


Однако при выполнении такой конструкции в ФФ получается в ячейке следующее:
<select name="name" style="width: 100%"></select><option value="0"></option><option value="872">1</option><option value="799">2</option><option value="1057">....


т.е. селект сразу закрывается, а элементы встают рядом с ним списком.
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2018, 13:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от w03zd8rc
cell.innerHTML =
это надо делать 1 раз
создайте строку полностью, и только затем добавьте.
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2018, 13:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

w03zd8rc,
cell = row.insertCell(0);
var html = "<select name='name' style='width: 100%'>";
html += "<option value='0'></option>";
html += "<option value='872'>1</option>";
html += "<option value='799'>2</option>";
html += "<option value='1057'>3</option>";
//.... <очень много элементов>
html += "</select><br/>";
cell.innerHTML = html
Ответить с цитированием
  #4 (permalink)  
Старый 18.10.2018, 13:11
Новичок на форуме
Отправить личное сообщение для w03zd8rc Посмотреть профиль Найти все сообщения от w03zd8rc
 
Регистрация: 18.10.2018
Сообщений: 2

Пробовал формировать строку полностью - получается очень длинной и JS встаёт колом (возможно упираюсь в разрешённую длину строки).

cell.innerHTML += "<option value='0'></option>";
cell.innerHTML += "<option value='872'>1</option>";
cell.innerHTML += "<option value='799'>2</option>";
cell.innerHTML += "<option value='1057'>3</option>";


это формируется из php, и элементов может быть больше тысячи.

Решил пойти другим путём:

select = cell.children[0];
<цикл>
opt = document.createElement('option');
opt.value = '1';
opt.title = 'тыкни сюда';
opt.innerHTML = '1';
select.appendChild(opt);
<конец цикла>

и в цикле все элементы.
В такой конструкции отрабатывает
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление элемента формы при выборе SELECT orangebox jQuery 5 11.01.2017 08:29
Как отфильтровать таблицу по select? miusov jQuery 1 16.09.2016 11:50
Добавление строк в таблицу и скрытие таблицы. III Общие вопросы Javascript 39 20.11.2015 10:05
Блокирование интерфейса. Добавление нового элемента vychmat Элементы интерфейса 5 20.03.2014 15:04
Ext.tree, динам. добавление элемента Margarita ExtJS 0 24.12.2012 15:00