JS获取div里面的其它元素的两种方法

通过JS的DOM获取div里面的其它元素的两种方法 getElementsByTagName 和 querySelector ,具体使用方法如下:

html 复制代码
<div id="box">
        <input type="text" id="h1" value="h1">
        <input type="text" id="h2" value="h2">
</div>

getElementsByTagName的获取方式:

javascript 复制代码
<script>
        var box = document.getElementById('box')
        var input = box.getElementsByTagName('input')[0];
        input.style.backgroundColor = 'pink'
</script>

这里的 ('input')[0] 因为getElementsByTagName获取的是一个伪数组集合,不能直接注册事件,必须要提取单个元素才可以,[0] 是索引号。效果图如下:

如果可以改为 [1] 就是 h2 改变背景,如果需要获取所有的input,可以用循环

javascript 复制代码
var box = document.getElementById('box')
var input = box.getElementsByTagName('input');
for (var i = 0; i < input.length; i++) {
      input[i].style.backgroundColor = 'pink'
}

querySelector的获取方式:

javascript 复制代码
var input = document.querySelector('#box input')
input.style.backgroundColor = 'pink';

这种方法是实际开发中常用的方法,比较严谨一些,不过 querySelector 只能获取第一个,如果想要获取全部可以使用:

javascript 复制代码
var input = document.querySelectorAll('input')
for (var i = 0; i < input.length; i++) {
     input[i].style.backgroundColor = 'pink'
}

注意:getElementsByTagName、getElementsByClassName、getElementsByName、querySelectorAll 获取的都是伪数组集合,都不能直接注册事件,需要在后面加上索引

相关推荐
有味道的男人13 分钟前
如何使用招标网API获取项目详情?
java·服务器·前端
qq_4061761414 分钟前
深入剖析JS中的XSS与CSRF漏洞:原理、攻击与防御全指南
服务器·开发语言·前端·javascript
RFCEO15 分钟前
HTML编程 课程六、:HTML5 新增多媒体标签
前端·html·html5·多媒体标签·嵌入音频、视频、动画
yanyu-yaya23 分钟前
速学兼复习之vue3章节4
前端·vue.js·前端框架
Mr-Wanter26 分钟前
vue 数据反显时数字/字母不换行导致的样式问题
前端·javascript·vue.js
梁萌34 分钟前
vue项目从npm升级为pnpm
前端·npm·node.js
修己xj35 分钟前
CSS魔法:对话生成器与奔驰骏马的创意实现
前端·css
琹箐1 小时前
Cursor 无法使用prettier格式化
前端
觉醒大王1 小时前
如何整理文献阅读笔记? (精读与泛读)
前端·css·笔记·深度学习·自然语言处理·html·学习方法
广州华水科技1 小时前
单北斗GNSS变形监测系统在水库安全监测中的应用与发展
前端