`

querySelector & querySelectorAll --- 像CSS一样选择DOM

阅读更多

在传统 的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并 不多,仅仅局限于通过 tag, name, id 等方式来查找,这显然是远远不够的,如果想要进行更为精确的选择不得不使用看起来非常繁琐的正则表达 式,或者使用某个库。事实上,现在所有的浏览器厂商都提供了 querySelector 和 querySelectorAll 这两个方法的支持,甚 至就连微软也派出了 IE 8 作为支持这一特性的代表,querySelector 和 querySelectorAll 作为查找 DOM 的又一 途径,极大地方便了开发者,使用它们,你可以像使用 CSS 选择器一样快速地查找到你需要的节点。

querySelector 和 querySelectorAll 的使用非常的简单,就像标题说到的一样,它和 CSS 的写法完全一样,对于前端开 发人员来说,这是难度几乎为零的一次学习。假如我们有一个 id 为 test 的 DIV,为了获取到这个元素,你也许会像下面这样:

document.getElementById("test");
 

现在我们来试试使用新方法来获取这个 DIV
document.querySelector("#test");
document.querySelectorAll("#test")[0];
感 觉区别不大是吧,但如果是稍微复杂点的情况,原始的方法将变得非常麻烦,这时候 querySelector 和 querySelectorAll 的 优势就发挥出来了。比如接下来这个例子,我们将在 document 中选取 class 为 test 的 div 的子元素 p 的第一个子元素,当 然这很拗口,但是用本文的新方法来选择这个元素,比用言语来描述它还要简单。
document.querySelector("div.test>p:first-child");
document.querySelectorAll("div.test>p:first-child")[0];
现 在应该对于 querySelector、querySelectorAll 方法中的参数已经非常明白了,是的,它接收的参数和 CSS 选择器完全一 致。querySelector 和 querySelectorAll 的区别在于 querySelector 用来获取一个元素,而 querySelectorAll 可以获取多个元素。querySelector 将返回匹配到的第一个元素,如果没有匹配的元素则返回 Null。querySelectorAll 返回一个包含匹配到的元素的数组,如果没有匹配的元素则返回的数组为空 。在本文最后一个例子中,我们使用 querySelectorAll 给所有 class 为 emphasis 的元素加粗显示。
var emphasisText = document.querySelectorAll(".emphasis");
for( var i = 0 , j = emphasisText.length ; i < j ; i++ ){    
    emphasisText[i].style.fontWeight = "bold";
}
 

  • 大小: 42 KB
分享到:
评论

相关推荐

    原生的强大DOM选择器querySelector.pdf

    querySelector和querySelectorAll是JavaScript DOM操作的重要工具,它们让开发者能够以CSS选择器的方式选取DOM元素,大大提高了代码的可读性和简洁性。理解这两个方法的用法和区别,对于编写高效、易维护的DOM操作...

    再谈querySelector和querySelectorAll的区别与联系

    总的来说,`querySelector`和`querySelectorAll`都是强大的工具,用于根据CSS选择器选取DOM元素。开发者应根据具体需求选择使用哪个方法,同时注意浏览器的兼容性和性能考虑。在处理复杂的选择和大量元素时,优化...

    javascript之querySelector和querySelectorAll使用介绍

    和querySelector一样,querySelectorAll支持多种CSS选择器。 使用querySelectorAll时,需要注意以下几点: 1. 返回的是一个静态的NodeList对象,即使DOM发生了变化,它也不会自动更新。 2. 无法直接对返回的...

    原生的强大DOM选择器querySelector介绍.docx

    querySelector 的优点是使用简洁,使用方式与 CSS 选择器完全一样,对于前端开发人员来说,难度几乎为零。它可以用于查找单个元素或多个元素,返回匹配到的第一个元素或包含匹配到的元素的数组。 querySelector 的...

    javascript高级选择器querySelector和querySelectorAll全面解析

    他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素。 目前几乎主流浏览器均支持了他们。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera。 querySelector 和 querySelectorAll 在规范中定义了如下...

    Champagne-Cocktail:TELERIK-ACADEMY-JS-UI&DOM-2015-TEAMWORK

    4. **DOM操作**:如何使用`document.getElementById`, `querySelector`, `querySelectorAll`等方法选取元素,以及`appendChild`, `removeChild`, `innerHTML`等方法对DOM进行增删改。 5. **CSS操作**:通过...

    各浏览器中querySelector和querySelectorAll的实现差异分析

    【querySelector和querySelectorAll详解...总的来说,理解并熟练运用 `querySelector` 和 `querySelectorAll` 可以极大地提升JavaScript操作DOM的效率和灵活性,特别是在处理复杂的选择器和需要高效查找元素的场景下。

    javascript之querySelector和querySelectorAll使用说明

    首先,`querySelector` 方法接收一个CSS选择器作为参数,然后在指定的上下文中(可能是整个文档或特定的DOM元素)查找与该选择器匹配的第一个元素。如果找到匹配的元素,`querySelector` 返回该元素;如果没有找到,...

    JS原生的强大DOM选择器querySelector.pdf

    `querySelector` 和 `querySelectorAll` 是JavaScript中用于DOM操作的两个强大方法,它们允许开发者使用CSS选择器的方式来选取DOM元素,极大地提高了代码的可读性和效率。这两个方法在现代浏览器中得到了广泛支持,...

    原生的强大DOM选择器querySelector介绍

    querySelector和querySelectorAll的优势在于它们能够处理复杂的CSS选择器,如组合选择器、伪类选择器等,这让开发者可以使用熟悉且强大的CSS语法来选取DOM元素。同时,这两个方法在现代浏览器中得到了广泛支持,包括...

    前端开源库-jsdom-papandreou

    4. **CSS 选择器支持**:JSDOM 使用 `querySelector()`, `querySelectorAll()` 等方法来选择元素,支持 CSS 选择器。 5. **XMLHttpRequest 模拟**:JSDOM 提供了 `window.XMLHttpRequest` 对象的模拟,允许在 Node....

    returning-DOM-elements-javascript-源码.rar

    5. **`document.querySelector` 和 `document.querySelectorAll` 的CSS选择器**:这些方法支持广泛的CSS选择器,如类选择器(`.myClass`),ID选择器(`#myID`),属性选择器(`[attr=value]`),以及子选择器(`&gt;`...

    IE8下关于querySelectorAll()的问题

    querySelectorAll()方法是W3C标准的一部分,用于返回文档中匹配指定CSS选择器的所有元素。在IE8中,这个方法被引入作为对现代浏览器特性的追赶,但在实际使用中可能需要注意一些兼容性问题。 首先,问题在于当属性...

    Thinkful-DOM-源码.rar

    1. **元素选择**:DOM提供了`document.getElementById`、`document.getElementsByTagName`、`document.querySelector`和`document.querySelectorAll`等方法,用于根据ID、标签名或CSS选择器选取元素。 2. **元素...

    XML ----DOM操作

    `getElementById`,`getElementsByTagname`,`querySelector`和`querySelectorAll`等方法允许我们根据ID、标签名或CSS选择器找到特定的节点。 5. **操作节点**:DOM允许我们添加、删除、修改节点。例如,`...

    Web APIs-Dom获取&属性操作(理论+实战篇)-获取随机图片案例资料

    - 使用`querySelector`和`querySelectorAll`代替循环遍历DOM查找元素,因为它们是一次性计算的。 - 避免频繁操作DOM,可以先在内存中构建好元素树,再一次性插入到DOM中。 - 使用事件委托来减少事件监听器的数量,将...

    DOM应用---遍历网页中的元素

    - `querySelector`: 获取匹配CSS选择器的第一个元素。 - `querySelectorAll`: 获取匹配CSS选择器的所有元素。 3. **遍历节点的方法** - `childNodes`: 返回一个NodeList,包含了所有子节点。 - `firstChild`, `...

    Javascript--DOM.rar_javascript

    5. `querySelectorAll`: 返回匹配CSS选择器的所有元素,例如:`document.querySelectorAll('.myClass')` 三、操作DOM元素 1. 添加元素:使用`createElement`创建新元素,`appendChild`或`insertBefore`插入到适当...

Global site tag (gtag.js) - Google Analytics