selenium之document.querySelector()方法

document.querySelector()方法

1. 常用的三种获取元素的js方式

  • document.getElementById("");
  • document.getElementsByClassName();
  • document.getElementsByTagName();
 var doc=document;
 
var box=doc.getElementById("box");
 
var li=box.getElementsByTagName("li");
 
var surfaces=box.getElementsByClassName("surfaces");

querySelector()可以直接加点击事件,而querySelectorAll()不能直接加点击事件

2. querySelector()

var node = document.querySelector("#lover"); // 获取文档中的第一个id=lover的元素

var node = document.querySelector(".lover"); // 获取文档中的第一个class="lover"的元素

var node = document.querySelector("p.lover"); // 获取class="lover" 的第一个p元素

var node = document.querySelector("a[target]");// 获取第一个带target属性的a元素

var element = document.querySelector('.foo,.bar');//返回带有foo或者bar样式类的首个元素

document.querySelector(\"body\").style=""; // 移除style属性

document.querySelector("h2,h3").style.backgroundColor = "blue";//为文档的第一个h2元素添加背景颜色,但是,如果文档中<h3>元素位于<h2>元素之前,<h3>元素将会被设置指定的背景颜色,总结,多元素选择时,哪个先匹配就是谁咯,只有一个被选中。

querySelector() 方法仅仅返回匹配指定选择器的第一个元素。

3. querySelectorAll

elementList = document.querySelectorAll(selectors);

elementList 是一个静态的 NodeList 类型的对象。

selectors 是一个由逗号连接的包含一个或多个 CSS 选择器的字符串。

查找文档中共包含 "target" 属性的 <a> 标签,并为其设置边框:

var x = document.querySelectorAll("a[target]");
 
var i;
 
for (i = 0; i < x.length; i++) {
 
        x[i].style.border = "10px solid red";
 
}

let t0 = window.performance.now();
let li = document.querySelectorAll('li');
console.log("li 的数量", li.length);
for (let i = 0; i < li.length; i++) {
    li[i].textContent = i;
}
let t1 = window.performance.now();
console.log("耗时" + (t1 - t0) + "毫秒");

当页面中出现多个相同class标签(或者多个相同标签(比如多个div))时,如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代。

该方法返回所有满足条件的元素,结果是个nodeList集合。查找规则与前面所述一样。 ----> querySelectorAll 得到一个伪数组 DOM。

ParentNode.querySelectorAll()的结果是NodeList数组,但是又不是一般的js数组(Array),所以也不能直接调用Array的方法。

相关推荐
梦境之冢5 分钟前
axios 常见的content-type、responseType有哪些?
前端·javascript·http
racerun8 分钟前
vue VueResource & axios
前端·javascript·vue.js
J总裁的小芒果25 分钟前
THREE.js 入门(六) 纹理、uv坐标
开发语言·javascript·uv
m0_5485147725 分钟前
前端Pako.js 压缩解压库 与 Java 的 zlib 压缩与解压 的互通实现
java·前端·javascript
浮游本尊33 分钟前
Nginx配置:如何在一个域名下运行两个网站
前端·javascript
新中地GIS开发老师41 分钟前
《Vue进阶教程》(12)ref的实现详细教程
前端·javascript·vue.js·arcgis·前端框架·地理信息科学·地信
Cachel wood1 小时前
Django REST framework (DRF)中的api_view和APIView权限控制
javascript·vue.js·后端·python·ui·django·前端框架
放逐者-保持本心,方可放逐2 小时前
SSE 流式场景应用 及 方案总结
javascript·axios·fetch·eventsource
白云~️2 小时前
uniappX 移动端单行/多行文字隐藏显示省略号
开发语言·前端·javascript
小华同学ai3 小时前
vue-office:Star 4.2k,款支持多种Office文件预览的Vue组件库,一站式Office文件预览方案,真心不错
前端·javascript·vue.js·开源·github·office