Подтвердить что ты не робот

Как использовать document.getElementByName и getElementByTag?

 document.getElementById('frmMain').elements

могу ли я использовать это как

document.getElementByName('frmMain').elements 

или

document.getElementBytag('table').elements`
4b9b3361

Ответ 1

  • document.getElementById( 'frmMain'). Элементы
    Предполагается, что форма имеет идентификатор и этот идентификатор является уникальным, как и должны быть идентификаторы. Хотя он также обращается к атрибуту name в IE, добавьте идентификатор к элементу, если вы хотите использовать getElementBy Id

  • document.getElementsByName( 'frmMain') [0].elements
    получит элементы первого объекта с именем frmMain на странице - обратите внимание на множественное число getElement s - он вернет коллекцию.


Отличная альтернатива


  • document.querySelectorAll( "форма") [0].elements
    Обратите внимание на All - это коллекция. [0] получит элементы первой формы на странице. "Форма" является допустимым селектором CSS

Ответ 2

getElementById возвращает ссылку на элемент с идентификатором, соответствующим аргументу, или null, если в документе не существует такого элемента.

getElementsByName() (обратите внимание на множественное число Элементы) возвращает (возможно, пустой) HTMLCollection элементов с имя, соответствующее аргументу. Обратите внимание, что IE рассматривает атрибуты и свойства имени и идентификатора как одно и то же, поэтому getElementsByName также будет возвращать элементы с соответствующим идентификатором.

getElementsByTagName похоже, но возвращает NodeList. Все это в соответствующих спецификациях.

Ответ 3

Я предполагаю, что вы говорите о getElementById(), возвращая ссылку на элемент, в то время как остальные возвращают список node. Просто подстройте ноделист для других, например. document.getElementBytag('table')[4].

Кроме того, elements является только свойством формы (HTMLFormElement), а не table, например, в вашем примере.

Ответ 4

Если вы указали одно и то же текстовое имя для обоих свойств вашего ИД и имени, которое вы можете дать, например, document.getElementByName('frmMain')[index], будет вызвана ошибка другого мудрого объекта. И если на вашей странице есть только одна таблица, вы можете использовать document.getElementBytag('table')[index].

EDIT:

Вы можете заменить индекс в соответствии с вашей формой, если его первая форма помещает 0 для индекса.

Ответ 5

It getElementsByName() и getElementsByTagName() - обратите внимание на "s" в "Элементах", указывая, что обе функции возвращают список элементов, т.е. NodeList, к которому вы будете обращаться, как массив. Обратите внимание, что вторая функция заканчивается на "TagName", а не "Tag".

Даже если функция возвращает только один элемент, она все равно будет в NodeList длиной один. Итак:

var els = document.getElementsByName('frmMain');
// els.length will be the number of elements returned
// els[0] will be the first element returned
// els[1] the second, etc.

Предполагая, что ваша форма является первой (или только) формой на странице, вы можете сделать это:

document.getElementsByName('frmMain')[0].elements
document.getElementsByTagName('table')[0].elements

Ответ 6

  • Метод getElementsByName() обращается ко всем элементам с помощью указанное имя. этот метод возвращает коллекцию элементов, являющихся массивом.
  • Метод getElementsByTagName() обращается ко всем элементам с помощью указанный тэг. этот метод возвращает коллекцию элементов, являющихся массивом.
  • Доступ к первому элементу с указанным идентификатором. этот метод возвращает только один элемент.

например:

<script type="text/javascript">
    function getElements() {
        var x=document.getElementById("y");
        alert(x.value);
    }
</script>
</head>
<body>
    <input name="x" id="y" type="text" size="20" /><br />

Это вернет один элемент HTML и отобразит его атрибут value.

<script type="text/javascript">
    function getElements() {
        var x=document.getElementsByName("x");
        alert(x.length);
    }
</script>
</head>
<body>
    <input name="x" id="y" type="text" size="20" /><br />
    <input name="x" id="y" type="text" size="20" /><br />

это вернет массив элементов HTML и количество элементов, которые соответствуют атрибуту name.

Извлечен из w3schools.