Javascript не может получить доступ к документу: нулевой или неопределенный - PullRequest
0 голосов
/ 10 октября 2011

document.getElementsByName('name').value возвращает undefined.Я не имею ни малейшего представления о том, почему это так.

Я правильно включил файл .js, Firebug не находит никаких ошибок в моем коде, и код завершается ошибкой в ​​первой строке илидва, потому что каждый раз, когда я вызываю вышеупомянутую функцию, она возвращает undefined.Это меня совершенно запутало.

Вот как я включил файл:

    <script type="text/javascript" src="new.js"></script>

Вот весь код, необходимый для достижения первого неопределенного значения, возвращаемого вызовом функции:

    function myfunction() {
        var myvar = document.getElementsByName('myElement').value;

... и в этот момент я получаю неопределенные переменные.Кнопка, которую я использую для запуска сценария, использует следующий код:

    <button type="button" onclick="myfunction()">MyButton</button>
  1. Влияет ли тип кнопки, на которую я влияю, какая информация доступна для сценария?
  2. Как мневыяснить, почему document.getElementsByName() возвращает undefined?
  3. Имеет ли объект Javascript document какие-либо проблемы со сценариями, импортированными из другого файла?

Извините, если это тактупой вопрос.Я очень плохо знаком с Javascript.

РЕДАКТИРОВАТЬ: Спасибо Майк Сэмюэль за ваш ответ.Это починило это как очарование, и мне интересно, почему я не знал этого раньше?У меня должно быть столько же догадок, сколько и то, как getElementsByName () предполагает, что возвращено более одного значения ...

Ответы [ 2 ]

5 голосов
/ 10 октября 2011

getElementsByName возвращает массивоподобный объект, содержащий элементы, а не элемент. Вставьте [0] до .value.

var myvar = document.getElementsByName('myElement')[0].value;
0 голосов
/ 10 октября 2011

Javascript имеет 3 различные функции, которые применяются в подобных ситуациях.

 ___________________________________________________________________________________
|getElementById()       | Accesses the first element with the specified id.          |
|                       | Returns a single element, as ID's are unique in a document |
|_______________________|____________________________________________________________|
|getElementsByName()    | Accesses all elements with a specified name.               |
|                       | Returns an array of all elements marked with this name.    |
|                       | Used like a CSS class(not unique).                         |
|_______________________|____________________________________________________________|
|getElementsByTagName() | Accesses all elements with a specified tagname.            |
|                       | Returns an array of all elements with a given tag.         |
|_______________________|____________________________________________________________|

Используйте ID, если вам нужен конкретный отдельный элемент, имя для произвольной группы (доступ как массив с индексом) и тег, если вы хотите, чтобы все элементы одного типа (также по индексируемому массиву) Удачи и удачного кодирования; -}

...