jQuery选择器
2016-03-28 11:23
751 查看
面试阿里的时候,被问到jQuery中的类怎么实现,当时觉得很简单,想当然地回答了document.getElementsByClassName()。直到今天才发现那是个悲剧的开始啊~
其实,jQuery的核心是通过CSS选择符查询DOM文档取得元素的引用,从而抛开了getElementById()和getElementByTagName()。
注意:document.getElementsByClassName()是HTML5添加的方法。
以下内容引用于W3School。
jQuery 使用 CSS 选择器来选取 HTML 元素。
$("p") 选取 <p> 元素。
$("p.intro") 选取所有 class="intro" 的 <p> 元素。
$("p#demo") 选取所有 id="demo" 的 <p> 元素。
jQuery 使用 XPath 表达式来选择带有给定属性的元素。
$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
另外,介绍下Selectors API,它是由W3C发起制定的一个标准,致力于让浏览器原生支持CSS查询。Selectors API Level1的核心是两个方法:querySelector()和querySelectorAll()。在兼容的浏览器中,可以通过Document及Element类型的实例调用它们。目前已完全支持Selectors API Level1的浏览器有IE8+、Firefox3.5+、Safari3.1+、Chrome和Opera10+。
1. querySelector()方法
querySelector()方法接收一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null。
2. querySelectorAll()方法
querySelectorAll()方法接收的参数也是一个CSS选择符,但返回的是素有匹配的元素而不仅仅是一个元素,返回的是一个NodeList的实例。
只要传给querySelectorAll()方法的CSS选择符有效,该方法都会返回一个NodeList对象,而不管找到多少匹配的元素。如果没有找到匹配的元素,NodeList就是空的。
其实,jQuery的核心是通过CSS选择符查询DOM文档取得元素的引用,从而抛开了getElementById()和getElementByTagName()。
注意:document.getElementsByClassName()是HTML5添加的方法。
以下内容引用于W3School。
jQuery 元素选择器
jQuery 使用 CSS 选择器来选取 HTML 元素。$("p") 选取 <p> 元素。
$("p.intro") 选取所有 class="intro" 的 <p> 元素。
$("p#demo") 选取所有 id="demo" 的 <p> 元素。
jQuery 属性选择器
jQuery 使用 XPath 表达式来选择带有给定属性的元素。$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
另外,介绍下Selectors API,它是由W3C发起制定的一个标准,致力于让浏览器原生支持CSS查询。Selectors API Level1的核心是两个方法:querySelector()和querySelectorAll()。在兼容的浏览器中,可以通过Document及Element类型的实例调用它们。目前已完全支持Selectors API Level1的浏览器有IE8+、Firefox3.5+、Safari3.1+、Chrome和Opera10+。
1. querySelector()方法
querySelector()方法接收一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null。
//取得body元素 var body=document.querySelector("body"); //取得ID为"myDiv"的元素 var myDiv = document.querySelector("#myDiv"); //取得类为"selected"的第一个元素 var selected = document.querySelector(".selected"); //取得类为"button"的第一个图像元素 var img=document.body.querySelector("img.button");
2. querySelectorAll()方法
querySelectorAll()方法接收的参数也是一个CSS选择符,但返回的是素有匹配的元素而不仅仅是一个元素,返回的是一个NodeList的实例。
只要传给querySelectorAll()方法的CSS选择符有效,该方法都会返回一个NodeList对象,而不管找到多少匹配的元素。如果没有找到匹配的元素,NodeList就是空的。
//取得某<div>中所有<em>元素(类似于GetElementsByTagName("em")) var ems=document.getElementById("myDiv").querySelectorAll("em"); //取得类为"selected"的所有元素 var selecteds=document.querySelectorAll(".selected"); //取得所有<p>元素的所有<strong>元素 var strongs = document.querySelectorAll("p strong");要取得返回的额NodeList中的每一个元素,可以使用item()方法,也可以使用方括号语法。
var i,len,strong; for(i=0,len=storngs.lengthli<len;i++){ strong=strongs[i]; //or srongs.item(i) strong.className="important"; }
相关文章推荐
- 24款最好的jQuery日期时间选择器插件
- JQuery选择器中层级关系老是记不清楚怎么办,总结下看看。
- jquery+ajax实现跨域请求
- 幻灯展示jQuery插件supersized
- jQuery + Cookie引导客户操作
- jquery 时间选择插件-jedate
- jQuery实现的多滑动门,多选项卡效果代码
- jquery滚动条美化插件
- requireJS中的shim——以加载jQuery插件为例
- 轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
- jQuery实时显示鼠标指针位置和键盘ASCII码
- jQuery国际化插件 jQuery.i18n.properties 【轻量级】
- jQuery实现的精美平滑二级下拉菜单效果代码
- jquery表格增加删除后改变序号
- jquery对table表格的常用操作
- JQuery 学习笔记
- 使用jquery获取url及url参数的方法及定义JQuery扩展方法
- jQuery 源码解析二:jQuery.fn.extend=jQuery.extend 方法探究
- 正则表达式和Jquery
- 正则表达式与JQuery