У меня есть таблица, в которой я добавляю несколько строк динамически, а в новых строках добавляю один элемент входного текста. Когда текст во входном элементе изменяется, я хочу получить доступ к родительской строке и сделать что-то вокруг нее. Но мой код не может получить доступ к родительскому узлу для элемента ввода. Ниже приведен пример кода. Что является причиной этого? Есть ли какая-то работа?Почему родительский узел для элемента ввода не определен?
Создание строки выглядит примерно так:
var newRow = document.createElement('tr');
dojo.place(newRow, row, "after");
var td = document.createElement('td');
dojo.place(td, newRow, 'last');
dojo.attr(td, 'colspan', 2);
dojo.place(document.createTextNode('Track id:'), td, 'last');
var input = document.createElement('input');
dojo.place(input, td, 'last');
dojo.attr(input, 'type', 'text');
dojo.attr(input, 'value', 0);
dojo.attr(input, 'onchange', "JavaScript: onTrackIdChange(event);");
Начальная часть onTrackIdChange
выглядит как:
function onTrackIdChange(event)
{
var textbox = event.target;
console.log(textbox);
// lets find the parent row
var row = findParentRow(btn);
Реализация findParentRow выглядит следующим образом:
function findParentRow(node)
{
var parent = node;
do
{
console.log(parent);
parent = parent.parentNode;
}
while (parent.nodeName != 'TR');
return parent;
}
Функция findParentRow терпит неудачу, так как она говорит, что родительский элемент для ввода nt не определено.
О, это была такая глупая ошибка. Результат операции копирования пасты :(Thanx много. –