document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementsByName

本文介绍了JavaScript中使用document.getElementById(id)和document.getElementsByName(name)方法来选取HTML文档中的元素。前者通过ID属性选择唯一元素,后者通过name属性选择可能多个的元素,并以数组形式返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用document.getElementById(id)在操作文档的一个特定的元素时,最好给该元素一个 id 属性,为它指定一个(在文档中)唯一的名称,然后就可以用该 ID 查找想要的元素。
这里要注意的是document.getElementById(id)它返回一是一个元素。

该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。
因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有getElementsByName() 方法返回的是元素的数组,而不是一个元素。所以导致他们的访问方式有一定的不同
如在下面的代码中表明他们的访问方式:
  1. <html>
  2. <head>
  3. <title>
  4. document.all test
  5. </title>
  6. <script language="javascript">
  7. function view()
  8. {
  9.     alert(document.getElementById("ccc").value);
  10.     alert(document.getElementsByName("ccc")[0].value);
  11.     //obj = document.getElementsByName("aaa");
  12.     //alert(obj.value);
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form name="form1" id="f1">
  18. <input type="text" name="ccc" id="aaa">
  19. <input type="button" name="bbb" value="click" onclick="view();">
  20. </form>
  21. </body>
  22. </html>

### 使用 JavaScript 方法获取页面元素内容 以下是通过 `document.getElementById`、`document.getElementsByTagName` 和 `document.getElementsByName` 这三种方法获取页面上的班级、姓名和学号的示例代码。 #### HTML 结构 首先定义一个简单的 HTML 页面结构,其中包含用于存储班级、姓名和学号的信息: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript 示例</title> </head> <body> <!-- 班级 --> <div id="class">计算机科学班</div> <!-- 姓名 --> <p name="name">张三</p> <!-- 学号 --> <span tag="studentId">2023123456789</span> <button onclick="displayInfo()">显示信息</button> <script src="script.js"></script> </body> </html> ``` #### JavaScript 实现 下面是实现逻辑的 JavaScript 文件 (`script.js`) 的代码: ```javascript function displayInfo() { // 使用 document.getElementById 获取班级信息 const className = document.getElementById('class').textContent; // 使用 document.getElementsByName 获取姓名信息 const nameElements = document.getElementsByName('name'); let studentName; if (nameElements.length > 0) { studentName = nameElements[0].textContent; } // 使用 document.getElementsByTagName 获取自定义标签属性中的学号信息 const spanTags = document.getElementsByTagName('span'); let studentId; for (let i = 0; i < spanTags.length; i++) { if (spanTags[i].getAttribute('tag') === 'studentId') { studentId = spanTags[i].textContent; break; } } // 输出到控制台或弹窗展示 alert(`班级: ${className}\n姓名: ${studentName}\n学号: ${studentId}`); } ``` --- ### 解析说明 1. **`document.getElementById`** - 此方法通过唯一的 ID 属性值定位 DOM 元素[^2]。 - 在本例中,我们通过 `id="class"` 定位到了表示班级的 `<div>` 元素,并提取其文本内容作为班级名称。 2. **`document.getElementsByName`** - 此方法基于 `name` 属性查找一组匹配的元素集合[^2]。 - 返回的是一个类数组对象(HTMLCollection),因此需要进一步处理以获取具体的内容。在此处假设只有一个具有指定 `name` 属性的元素存在。 3. **`document.getElementsByTagName`** - 此方法按标签名检索所有符合条件的节点列表。 - 需要遍历这些节点并检查特定条件(如自定义属性 `tag="studentId"`)来找到目标项。 以上方式均能有效完成任务,但需注意实际开发场景下可能涉及更复杂的验证机制以及错误处理流程。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值