Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не добавляется контент посредством innerHTML, В JS совершенно не силен 
:(
    Опции темы
Guedda
Дата 31.3.2010, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Добрый день, уважаемые специалисты. Есть такая запарка у меня, ничего не получается.

Есть кусок кода:
Код

<div id="test1">
<tr id="newline" nomer="[0]">
    <td width="30%"><input type="text" name="property_id[0]" id="property_id[]" value="" style="width:100%"></td>
    <td width="50%"><input type="text" name="property_title[0]" id="property_title[]" value="" style="width:100%"></td>
    <td width="10%">
        <select name="property_type[]" id="property_type[0]">
        <option></option>
        <? foreach ($types as $type) echo "<option value=\"$type\">$type</option>"; ?>
        </select>
    </td>
    <td valign="top"align="right"><input type="button" onclick="rmline(0)" value="-" style="width:22px"></td>
    <td valign="top"align="left"><input type="button" onclick="addline()" value="+" style="width:22px"></td>
</tr>
</div>


И есть функция addline:
Код

var line_counts = 0;
function addline() {
    line_counts++;
    el = document.getElementById('test1');
    el.innerHTML+="\r\n<tr nomer=\"[" + line_counts + "]\">\r\n"+
                    "<td width=\"30%\"><input type=\"text\" name=\"property_id[" + line_counts + "]\" id=\"property_id[" + line_counts + "]\" value=\"\" style=\"width:100%\"></td>\r\n"+
                    "<td width=\"50%\"><input type=\"text\" name=\"property_title[" + line_counts + "]\" id=\"property_title[" + line_counts + "]\" value=\"\" style=\"width:100%\"></td>\r\n"+
                    "<td width=\"10%\">
                    <select name=\"property_type[" + line_counts + "]\" id=\"property_type[" + line_counts + "]\">";
    el.innerHTML+="<option></option>
        <option value=\"число\">число</option>
<option value=\"дрб. число\">дрб. число</option>
<option value=\"строка\">строка</option>
<option value=\"текст\">текст</option>
<option value=\"большой текст\">большой текст</option>
<option value=\"дата\">дата</option>
<option value=\"дата и время\">дата и время</option>
<option value=\"да/нет\">да/нет</option>
        </select>
    </td>
    <td valign=\"top\" align=\"right\"><input type=\"button\" onclick=\"rmline(" + line_counts +")\" value=\"-\" style=\"width:22px\"></td>
    <td valign=\"top\"align=\"left\"><input type=\"button\" onclick=\"addline()\" value=\"+\" style=\"width:22px\"></td>
</tr>";
}

Так вот в блок не добавляется еще содержимое при нажатии на кнопку +. Что я делаю не так? Заранее благодарю за ответы.

Это сообщение отредактировал(а) Guedda - 31.3.2010, 12:19


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
EmilRegis
Дата 31.3.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



Цитата(Guedda @ 31.3.2010,  12:18)
 Что я делаю не так? 

не склеиваете строки
Код

el.innerHTML+="<option></option> "+
        "<option value=\"число\">число</option>"+


Это сообщение отредактировал(а) EmilRegis - 31.3.2010, 12:44
PM MAIL   Вверх
Guedda
Дата 31.3.2010, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



А как их склеить правильно?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
нуп
Дата 31.3.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 12
Всего: 33



динамически наверное так document.createElement('tr') document.createElement('td');

Это сообщение отредактировал(а) нуп - 31.3.2010, 13:25
PM MAIL   Вверх
EmilRegis
Дата 31.3.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



Цитата(Guedda @ 31.3.2010,  12:58)
А как их склеить правильно?

правильно просто ограничивать каждую строку кавычками))) и в конце строки ставить плюс..
у вас же в первом el.innerHTML+= почти правильно сделано, кроме последней строки...а во втором вообще нигде не склеивается строка
PM MAIL   Вверх
Guedda
Дата 31.3.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



EmilRegis, немного не понятно Вы описали.  smile 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
EmilRegis
Дата 31.3.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



да блин...
у вас написано
Код

el.innerHTML+="<option></option>
        <option value=\"число\">число</option>


а надо так
Код

el.innerHTML+="<option></option>"+
        "<option value=\"число\">число</option>"

PM MAIL   Вверх
нуп
Дата 31.3.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 12
Всего: 33



Код

var line_counts = 0;
function addline() {
    line_counts++;
    el = document.getElementById('test1');
    el.innerHTML+="\r\n<tr nomer=\"[" + line_counts + "]\">\r\n"+"<td width=\"30%\"><input type=\"text\" name=\"property_id[" + line_counts + "]\" id=\"property_id[" + line_counts + "]\" value=\"\" style=\"width:100%\"></td>\r\n"+ "<td width=\"50%\"><input type=\"text\" name=\"property_title[" + line_counts + "]\" id=\"property_title[" + line_counts + "]\" value=\"\" style=\"width:100%\"></td>\r\n"+"<td width=\"10%\"> <select name=\"property_type[" + line_counts + "]\" id=\"property_type[" + line_counts + "]\">";
    el.innerHTML+="<option></option><option value=\"число\">число</option><option value=\"дрб. число\">дрб. число</option><option value=\"строка\">строка</option><option value=\"текст\">текст</option><option value=\"большой текст\">большой текст</option><option value=\"дата\">дата</option><option value=\"дата и время\">дата и время</option><option value=\"да/нет\">да/нет</option>     </select> </td>   <td valign=\"top\" align=\"right\"><input type=\"button\" onclick=\"rmline(" + line_counts +")\" value=\"-\" style=\"width:22px\"></td>    <td valign=\"top\"align=\"left\"><input type=\"button\" onclick=\"addline()\" value=\"+\" style=\"width:22px\"></td></tr>";
}


если в строке нету ; js сам его ставит. или пишите все в одну строчку, или разбейте на части
Код

el.innerHTML+="\r\n<tr nomer=\"[" + line_counts + "]\">\r\n";
el.innerHTML+="<td width=\"30%\"><input type=\"text\" name=\"property_id[" + line_counts + "]\";
.....

PM MAIL   Вверх
bars80080
Дата 31.3.2010, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(Guedda @  31.3.2010,  12:18 Найти цитируемый пост)
Что я делаю не так?

мягко говоря: всё

строки и ячейки в таблицу всталяются особым систаксисом insertRow и insertCell
можно воспользоваться, хотя бы этой подставкой:
Код

function insertRowIntoTable(tid, ar) {
    var ac = ar.length; if(ac < 1) { return false; }
    var t = document.getElementById(tid); if(!t) { return false; }
    var tr = t.getElementsByTagName('tr'); var tc = tr.length;
    var r = t.insertRow(tc); var c;
    for(var i = 0; i < ac; i++) { c = r.insertCell(i); c.innerHTML = ar[i]; }
    return true;
}

селекты формируются с помощью 

Код

select_element.options[i] = new Option(text, value);


по поводу строк уже сказали, но вот множество проблем исчезнет, если пользоваться инструментами по назначению. если бы вы включили подсветку javascript, а не html, может быть вылезло ещё что-нибудь

PM MAIL WWW   Вверх
Guedda
Дата 31.3.2010, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Я не знаю, как переиначить вопрос. Поэтому здесь я помечаю его решенным, но он не решен, следующий вопрос я задам в Центре Помощи.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
magelan
Дата 5.4.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 3
Всего: 16



в первом посте после дива идет тр, не знаю есть ли в оригинальном коде тэг открытия таблицы, но я бы на месте любого браузера по такому коду ДОМ не построил и соответственно обращаться к нему бы не дал.
PM MAIL   Вверх
ancer
Дата 13.4.2010, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.4.2010

Репутация: нет
Всего: нет



Всем привет! У меня нечто похожая проблема, так же не получается добавить контент средством innerHTML.  smile  Только не на ту же страницу где код скрипта, а во ифрейм. В общем у меня так: 

Код


<iframe id=bla-bla> </iframe>// вот я загружаю фрейм

<script language=javascript>

document.all.bla-bla.innerHTML="<script>.....</script>"; // а вот я пытаюсь в его код дописать скрипт (не выходит)

</SCRIPT>



на эту же страницу таким образом получается (конечно если вместо фрейма например: <div id=bla-bla> </div>).

Вопрос: как дописать скрипт в код фрейма из материнского окна?
Пожалуйсто, если можно, покажите пример (рабочий)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.