jQuery id选择器:
类似于 getElementById
$("#id") :id选择器:一个用来查找的ID,即元素的id属性
①、id是唯一的,每个id值在一个页面中只能使用一次。
②、如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。
③、超过一个元素的页面使用相同的id是无效的
类选择器: $( ".class" )
类似于getElementsByClassName
类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选。
jQuery在实现上,对于类选择器,如果浏览器支持,jQuery使用JavaScript的原生getElementsByClassName()函数来实现的。
元素选择器:
$("ele") :根据给定(html)标记名称选择所有的元素
等价于:js原生方法getElementsByTagName()函数支持
通配符*全选择器
$("*")选择所有的元素
层级选择器
//子选择器
//$("div > p")选择所有div元素里面的子元素P
//后代选择器
//$("div p") 选择所有div元素里面的p元素
//相邻兄弟选择器
//$("prev + div")选取prev后面的第一个的div兄弟节点
//一般相邻选择器
//$("prev ~ div")选取prev后面的所有的div兄弟节点
$( "parent > child" )
子选择器:选择所有指定“parent”元素中指定的"child"的直接子元素。
$("ancestor descendant")
后代选择器:选择给定的祖先元素的所有后代元素, 一个元素的后代可能是该元素的一个孩子,孙子,曾孙等
$("prev + next")
相邻兄弟选择器:选择所有紧接在“prev”元素后的“next”元素
$("prev ~ siblings")
一般兄弟选择器:匹配“prev”元素之后的所有 兄弟元素。具有相同的父元素,并匹配过滤“siblings”选择器
http://www.imooc.com/code/8342基本筛选选择器
http://www.imooc.com/code/8344内容筛选选择器
$(".div:contains(':contains')"):查找所有class="div"中DOM元素中包含"contains"的元素节点(包含指定文本的意思)
$(".div:has(span)"):查找所有class="div"中DOM元素中包含"span"的元素节点(包含指定元素的意思)
$(".a:parent"):选择所有包含子元素或者文本的a元素
$(".a:empty"):与parent相反,找到a元素下面的所有空节点(没有子元素)
http://www.imooc.com/code/8345可见性筛选选择器
我们有几种方式可以隐藏一个元素:
CSS display的值是none。
type="hidden"的表单元素。
宽度和高度都显式设置为0。
一个祖先元素是隐藏的,该元素是不会在页面上显示
CSS visibility的值是hidden
CSS opacity的指是0
属性筛选选择器
属性选择器让你可以基于属性来定位一个元素。可以只指定该元素的某个属性,这样所有使用该属性而不管它的值,这个元素都将被定位,也可以更加明确并定位在这些属性上使用特定值的元素
举例
属性筛选选择器:
$('div[name=p1]'): //查找所有div中,属性name=p1的div元素
$('div[p2]'): //查找所有div中,有属性p2的div元素
$('div[name|="-"]')//查找所有div中,有属性name中的值只包含一个连字符“-”的div元素,或以连字符‘-’相连的前缀为字符“-”的div
$('div[name~="a"]') //查找所有div中,有属性name中的值包含一个连字符“空”和“a”的div元素,以空格风格的属性中有属性值a
$('div[name^=imooc]') //查找所有div中,属性name的值是用imooc开头的
$('div[name$=imooc]') //查找所有div中,属性name的值是用imooc结尾的
$('div[name*="test"]')//查找所有div中,有属性name中的值包含一个test字符串的div元素
$('div[testattr!="true"]')//查找所有div中,有属性testattr中的值没有包含"true"的div
http://www.imooc.com/code/8347子元素筛选选择器
子元素筛选选择器不常使用,其筛选规则比起其它的选择器稍微要复杂点
1 :first只匹配一个单独的元素,但是:first-child选择器可以匹配多个:即为每个父级元素匹配第一个子元素。这相当于:nth-child(1)
2 :last 只匹配一个单独的元素, :last-child 选择器可以匹配多个元素:即,为每个父级元素匹配最后一个子元素
3 如果子元素只有一个的话,:first-child与:last-child是同一个
4 :only-child匹配某个元素是父元素中唯一的子元素,就是说当前子元素是父元素中唯一的元素,则匹配
5 jQuery实现:nth-child(n)是严格来自CSS规范,所以n值是“索引”,也就是说,从1开始计数,:nth-child(index)从1开始的,而eq(index)是从0开始的
6 nth-child(n) 与 :nth-last-child(n) 的区别前者是从前往后计算,后者从后往前计算
http://www.imooc.com/code/8348表单元素选择器
除了input筛选选择器,几乎每个表单类别筛选器都对应一个input元素的type值。大部分表单类别筛选器可以使用属性筛选器替换。比如 $(':password') == $('[type=password]'
http://www.imooc.com/code/8350表单对象属性筛选选择器
除了表单元素选择器外,表单对象属性筛选选择器也是专门针对表单元素的选择器,可以附加在其他选择器的后面,主要功能是对所选择的表单元素进行筛选
注意事项:
选择器适用于复选框和单选框,对于下拉框元素, 使用 :selected 选择器
http://www.imooc.com/code/8352特殊选择器this
$(this)
网友评论