document.getElementById('frmMain').elements
могу ли я использовать это как
document.getElementByName('frmMain').elements
или
document.getElementBytag('table').elements`
document.getElementById('frmMain').elements
могу ли я использовать это как
document.getElementByName('frmMain').elements
или
document.getElementBytag('table').elements`
name
в IE, добавьте идентификатор к элементу, если вы хотите использовать getElementBy IdОтличная альтернатива
All
- это коллекция. [0] получит элементы первой формы на странице. "Форма" является допустимым селектором CSSgetElementById возвращает ссылку на элемент с идентификатором, соответствующим аргументу, или null, если в документе не существует такого элемента.
getElementsByName() (обратите внимание на множественное число Элементы) возвращает (возможно, пустой) HTMLCollection элементов с имя, соответствующее аргументу. Обратите внимание, что IE рассматривает атрибуты и свойства имени и идентификатора как одно и то же, поэтому getElementsByName также будет возвращать элементы с соответствующим идентификатором.
getElementsByTagName похоже, но возвращает NodeList. Все это в соответствующих спецификациях.
Я предполагаю, что вы говорите о getElementById()
, возвращая ссылку на элемент, в то время как остальные возвращают список node. Просто подстройте ноделист для других, например. document.getElementBytag('table')[4]
.
Кроме того, elements
является только свойством формы (HTMLFormElement
), а не table
, например, в вашем примере.
Если вы указали одно и то же текстовое имя для обоих свойств вашего ИД и имени, которое вы можете дать, например, document.getElementByName('frmMain')[index]
, будет вызвана ошибка другого мудрого объекта. И если на вашей странице есть только одна таблица, вы можете использовать document.getElementBytag('table')[index]
.
EDIT:
Вы можете заменить индекс в соответствии с вашей формой, если его первая форма помещает 0 для индекса.
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
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.