document.querySelectorAll和document.querySelector
时间: 2023-06-28 15:04:55 浏览: 146
这两个方法都是 JavaScript 中用于选择 DOM 元素的方法。
`document.querySelector` 方法返回文档中第一个匹配指定选择器的元素,如果找不到匹配的元素,则返回 null。
例如:
```javascript
const element = document.querySelector('.example');
```
上面的代码会返回第一个 `class` 属性为 `example` 的元素。
`document.querySelectorAll` 方法返回文档中所有匹配指定选择器的元素,如果找不到匹配的元素,则返回空的 NodeList 对象。
例如:
```javascript
const elements = document.querySelectorAll('.example');
```
上面的代码会返回所有 `class` 属性为 `example` 的元素的 NodeList 对象。
总之,`document.querySelector` 返回的是单个元素,而 `document.querySelectorAll` 返回的是多个元素的 NodeList 对象。
相关问题
var oZhuye = document.querySelector('#team-zhuye'); var oBtns = document.querySelectorAll('.left-section button'); var oAddTeam = document.querySelector('#jiarutuandui'); //加入团队 var oMyteam = document.querySelector('#wodetuandui'); //我的团队 var oCreateteam = document.querySelector('#createteam'); //创建团队 var oHuodong = document.querySelector('#huodong'); //活动管理 var ocreatebtn = document.querySelectorAll('.create-btn'); //创建团队按钮 var obtns = document.querySelectorAll('.left > button'); var mobans = document.querySelectorAll('.moban'); for(let i = 0; i < obtns.length; i++) { obtns[i].onclick = function () { for(let j = 0; j < obtns.length; j++) { mobans[j].style.display = "none"; obtns[j].classList.remove('active'); } mobans[i].style.display = "block"; this.className = "active"; oCreateteam.style.display = "none"; searchTeam(); } } function clearStyle() { for (var i = 0; i < oBtns.length; i++) { oBtns[i].className = ""; } } for (var i = 0; i < ocreatebtn.length; i++) { (function(index) { // 使用立即执行函数创建闭包 ocreatebtn[index].onclick = function() { let imgChange = document.querySelector('#upload'); imgChange.src = "images/team.png"; let submitBtn = document.querySelector('#submit'); let resetBtn = document.querySelector('#reset'); resetBtn.style.display = "block"; submitBtn.style.display = "block"; let xiugaiBtn = document.querySelector('.xiugai'); xiugaiBtn.style.display = "none"; clearStyle(); oBtns[index].className = 'active'; oZhuye.style.display = 'none'; oAddTeam.style.display = 'none'; oMyteam.style.display = 'none'; oCreateteam.style.display = 'block'; oHuodong.style.display = 'none'; let teamname = document.querySelector('#team-name'); let teamdec = document.querySelector('#team-describe'); let teamEmail = document.querySelector('#team-email'); teamname.value = ""; teamdec.value = ""; teamEmail.value = ""; let gaiBtn = document.querySelector('#submit'); gaiBtn.value = "提交"; let create = document.querySelectorAll('.xiugai'); for (var i in create) { create[i].innerText = "创建团队"; } } }) }
这段代码是用于页面中的按钮点击事件的处理。首先,通过querySelector和querySelectorAll方法获取需要操作的元素节点。
接下来,使用for循环遍历obtns数组中的每个按钮,并为每个按钮添加点击事件处理函数。在点击事件处理函数中,首先使用for循环将所有mobans元素的display属性设置为"none",并移除所有obtns元素的active类名。然后,将当前点击按钮对应的mobans元素的display属性设置为"block",并给当前点击按钮添加active类名。
同时,将oCreateteam元素的display属性设置为"none",并调用searchTeam函数。
接下来,定义了clearStyle函数,用于移除oBtns数组中所有按钮的类名。
然后,使用for循环为ocreatebtn数组中的每个按钮添加点击事件处理函数。这里使用了立即执行函数创建闭包,目的是为了保存当前循环中的index值。在点击事件处理函数中,首先获取页面上的一些元素节点,并对它们进行一些操作,然后调用clearStyle函数移除oBtns数组中所有按钮的类名。接着,根据当前点击按钮的索引值给oBtns数组中对应的按钮添加active类名,并根据需要显示或隐藏一些元素节点。最后,重置一些表单输入框的值和按钮的文本内容。
总体来说,这段代码主要是实现了页面按钮点击事件的处理逻辑。
document.querySelector('selector') 和 document.querySelectorAll('selector')的区别
document.querySelector('selector')和document.querySelectorAll('selector')的区别在于返回值的类型和数量。
- document.querySelector('selector')返回的是一个对象,即匹配到的第一个元素。如果没有匹配到任何元素,则返回null。
- document.querySelectorAll('selector')返回的是一个集合,即匹配的所有元素组成的NodeList。如果没有匹配到何元素,则返回一个空的NodeList。
示代码如下:
```javascript
// 使用document.querySelector('selector')获取一个匹配的元素
var element = document.querySelector('.example');
console.log(element); // 输出:第一个匹配的元素
// 使用document.querySelectorAll('selector')获取所有匹配的元素
var elements = document.querySelectorAll('.example');
console.log(elements); // 输出:所有匹配的元素组成的NodeList
```
阅读全文