这让我感到惊讶,但我有一个简单的表格,里面有3个字段。这些字段没有“name”属性。他们改为拥有“id”属性。
然而。我仍然可以做一个
var f = document.getElementsByTagName('form')[0];
alert(f.elementID);
访问该元素。我想以这种方式访问表单元素,“name”属性是必要的。
我找不到任何解释这种行为的地方。有什么指针吗?
修改
我认为我的问题存在一些混乱。
我的表单字段没有“名称”属性。他们有一个“id”。不过,我可以这样做:
myform.elementId
访问它们。问题与getElementsByTagName无关。
答案 0 :(得分:4)
getElementsByTagName
返回给定标记的所有元素。 (在您的情况下,所有<form>
元素)
它不会返回所有具有name
属性的元素,因为您似乎理解它。
在您的情况下,您可以调用getElementById
来返回具有给定ID的(单个)元素。
编辑:我想我误解了你的问题。
如果你问为什么你仍然可以写myform.elementId
,那就确实使用了元素的ID。
答案 1 :(得分:4)
您将getElementsByTagName与getElementsByName混淆。 TagName正在拾取&lt; form&gt;但名称是&lt; form name ='XYZ'&gt;。
答案 2 :(得分:0)
你不能使用
var f = document.getElementByID('some_id');
alert(f.value);