2012-03-26 17 views
0

Я пытаюсь изменить значение только определенного объекта, но значение извлекается из входного тега, который я использую getElementById(). я получаю ошибку о том, что я не могу назвать getElementById() неопределеннойИзменить атрибут объекта, используя значение входного тега?

interfaces[idx].document.getElementById(panel).style.fontSize = document.getElementById('fsizes').value +'px'; 

и

document.getElementById(panel).style.fontSize = interfaces[idx].document.getElementById('fsizes').value +'px'; 

как кажется, не работают.

<input type="text" name="fsize" id = 'fsizes' onchange = 'changeSize();'/> 

Это вход.


редактирование: панель получает свое значение, когда один из проходов получает щелчок, поэтому я знаю, какой атрибут панели я меняю. Панели на моей странице являются частью одного объекта. Интерфейсы - это массив моего объекта. idx - к какому объекту обращаются.

+0

Что находится в «панели»? Как он получает свою ценность? Когда вы вызываете 'document.getElementById()', вы ** никогда ** не должны квалифицировать его, если у вас нет много кадров или чего-то еще. (Что такое «интерфейсы»?) – Pointy

+0

Тогда 'interfaces [idx] .document' должен быть нулевым. Проблема в другом месте - вероятно, где вы пытаетесь определить «интерфейсы [idx] .document'. –

+0

См. Мой ответ ниже. Если все находится на одной странице, и нет элементов, которые не находятся в iframe, вам не нужно префикс объекта документа массивом интерфейсов. документ является ссылкой на DOM. – tjscience

ответ

0

http://jsfiddle.net/adCE6/ fsizes возвращает значение, когда я устанавливаю значение по умолчанию, предполагая, что панель не определена. Если вы его установили где-то, убедитесь, что область правильная, префикс ее с var, если она еще не существует. или если панель не является переменной, заключите ее в круглые скобки.

+0

У меня есть эта панель, которая имеет значение по умолчанию, поэтому она всегда определяется. Что вы подразумеваете под областью? – SemicolonExpected

+0

Я видел ваш код здесь, а панель пустая панель = "". http://stackoverflow.com/questions/9865970/cannot-set-read-property-of-undefined by scope Я имел в виду, что панель объявляется в функции, но она не выглядит. – user1289347

+0

О, ничего себе я этого не видел. Я сделал так, чтобы панель не равнялась », но она все равно не работает. – SemicolonExpected

0

Это прекрасно работает, если вы отпустите интерфейсы [idx]. См. Следующий пример: http://jsfiddle.net/uX5sW/3/

+0

Проблема в том, что мне нужно уметь различать, какой объект изменяется, потому что я пытаюсь изменить только один объект. – SemicolonExpected

+0

не могли бы вы разместить больше разметки? – tjscience

+0

http://stackoverflow.com/questions/9865970/cannot-set-read-property-of-undefined мой весь код по этому вопросу – SemicolonExpected

Смежные вопросы