Здравствуйте.
Таблица в столбцах включает такие секции (номера, понятно, разные - тут 3)
CODE ( html):
скопировать код в буфер обмена
<!-- new section --> <div id="inputparagraph3"> <br> <p id="linetotranslate3" class="russianline"> I am the line to translate</p> <p> <textarea id="inputline3" class="inputwin" oninput = "InputDone(3);" onKeyDown= "InputDone(3);" onMouseDown= "InputDone(3);"></textarea> </p> </div>
окошки ввода опознаны так:
CODE ( javascript):
скопировать код в буфер обмена
var massivstrok = new Array (); for (var i = 0; i < kolwords ; i++) { massivstrok [i]=document.getElementById ("inputline"+i);}
Все хорошо.
Но как только я опознаю также id у внешнего div, окошки ввода перестают реагировать на команды из функций JS - не меняют текст, цвет и пр. Хотя в памяти хранят указанный value текст (как показывает alert). Внешне никак себя не проявляют. И при этом ошибки тоже не происходит - типа элементы массива существуют и валидны.
Вот при таком варианте этот кошмар начинается (первую строчку уберешь в комментарии - и все работает)
CODE ( javascript):
скопировать код в буфер обмена
var massivparags = new Array (); for (var i = 0; i < kolwords ; i++) {massivparags [i]=document.getElementById ("inputparagraph"+i);} var massivstrok = new Array (); for (var i = 0; i < kolwords ; i++) { massivstrok [i]=document.getElementById ("inputline"+i);}
Так пробовала, нихель:
Объясните мне, пожалуйста, что со мной происходит.
Так.. разобралась, что текстареа - не дети дива. Текстареа находится в третьем ребенке дива:
у которого innerHTML
CODE ( html):
скопировать код в буфер обмена
<textarea id="inputline3" class="inputwin" oninput = "InputDone(3);" onKeyDown= "InputDone(3);" onMouseDown= "InputDone(3);"></textarea>
И как его теперь ловить по id? Того, который "inputline3"?
Так работает:
CODE ( javascript):
скопировать код в буфер обмена
alert (document.getElementById ("inputparagraph"+i).children[2].getElementsByTagName("textarea")[0].id);
Сообщает, что он inputline3.
Так не работает:
CODE ( javascript):
скопировать код в буфер обмена
var massivstrok = new Array (); for (var i = 0; i < kolwords ; i++) { massivstrok [i]= document.getElementById ("inputparagraph"+i).children[2].getElementsByTagName("textarea")[0]
Все, сдалась. Спасибо за помощь.
Последним извращением было
CODE ( javascript):
скопировать код в буфер обмена
var massivstrok = new Array (); for (var i = 0; i < kolinputs ; i++) { var timID = document.getElementsByTagName("textarea")[i].id; timID=timID.replace("inputline",''); massivstrok [parseInt(timID)]= document.getElementsByTagName("textarea")[i];}
(потому что нумерация окошек должна соответствовать ручной разметке - горизонтальной, а они в HTML нумеруются столбиками в таблице).
Поделила каждый абзац на спаны.(Отредактировано автором: 20 Декабря, 2015 - 20:03:24)
|