Выполнять функцию непосредственно над элементом вместо результата document.getElementbyId

0

У меня есть элемент с идентификатором BaseGridView в моем HTML. Если я вызываю функцию непосредственно на нее, все работает, но если я получаю этот элемент через document.getElementById() мой вызов функции не работает.

Например:

BaseGridView.DoSomething();

Все работает отлично для меня.

Но если я это сделаю:

var hd = document.getElementById("HiddenforMainViewID");
var z = document.getElementById(hd.value);
z.DoSomething();

Ничего не работает, и Firefox говорит: "TypeError: z.DoSomething не является функцией". Значение hd является "BaseGridView", а z является фактическим элементом.

Может кто-нибудь, пожалуйста, объясните мне, почему это не сработает?

РЕДАКТИРОВАТЬ:

Поскольку есть путаница, как это:

BaseGridView.DoSomething();

Может даже работать, я действительно понятия не имею. Я использую DevExpress и как-то он способен делать такие вещи. Я имел в виду этот пример.

  • 0
    Вы уверены, что внутри этого значения нет пробелов?
  • 0
    У вас случайно есть переменная с именем BaseGridView ?
Показать ещё 4 комментария
Теги:
devexpress

1 ответ

0
Лучший ответ

"TypeError: z.DoSomething не является функцией" и "z - это фактический элемент" (то есть экземпляр класса Element) означает, что в классе Element отсутствует метод DoSomething.

  • 0
    Верный. Один раз я использовал переменную BaseGridView, которую Devexpress каким-то образом может предоставить там, а другой раз я пытаюсь использовать фактический элемент HTML. Это не может работать, конечно. Мне пришлось получить переменную по имени - не HTML-элемент - и все работало нормально.
  • 0
    @ Marguth Правильно, getElementById возвращает экземпляр Element :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню