js获取节点:

var chils= s.childNodes;  //得到s的全部子节点
var par=s.parentNode;   //得到s的父节点
var ns=s.nextSbiling;   //获得s的下一个兄弟节点
var ps=s.previousSbiling;  //得到s的上一个兄弟节点
var fc=s.firstChild;   //获得s的第一个子节点
var lc=s.lastChile;   //获得s的最后一个子节点

css选择器:

  基础选择器

*

通用元素选择器,匹配页面任何元素(这也就决定了我们很少使用)

#id

id选择器,匹配特定id的元素

.class

类选择器,匹配class包含(不是等于)特定类的元素

element

标签选择器

  组合选择器

E,F

多元素选择器,用”,分隔,同时匹配元素E或元素F

E F

后代选择器,用空格分隔,匹配E元素所有的后代(不只是子元素、子元素向下递归)元素F

E>F

子元素选择器,用”>”分隔,匹配E元素的所有直接子元素

E+F

直接相邻选择器,匹配E元素之后相邻同级元素F

E~F

普通相邻选择器(弟弟选择器),匹配E元素之后同级元素F(无论直接相邻与否)

.class1.class2

这个姑且也算一个吧,没什么名字,匹配类名中既包含class1又包含class2的元素

  属性选择器

E[attr]

匹配所有具有属性attr的元素,div[id]就能取到所有有id属性的div

E[attr=value]

匹配属性attr值为value的元素,div[id=test],匹配id=test的div

E[attr~=value]

匹配所有属性attr具有多个空格分隔、其中一个值等于value的元素

E[attr|=value]

匹配所有att属性具有多个”-”分隔、其中一个值以value开头的元素,主要用于lang属性,比如“en”、“en-us”

E[attr ^=value]

匹配属性attr的值以value开头的元素

E[attr $=value]

匹配属性attr的值以value结尾的元素

E[attr *=value]

匹配属性attr的值包含value的元素

  伪类选择器(css利器.万恶的不兼容)

E:first-child

匹配元素E的第一个子元素

E:link

匹配所有未被点击的链接

E:visited

匹配所有已被点击的链接

E:active

匹配鼠标已经其上按下、还没有释放的E元素

E:hover

匹配鼠标悬停其上的E元素

E:focus

匹配获得当前焦点的E元素

E:lang(c)

匹配lang属性等于c的E元素

E:enabled

匹配表单中可用的元素

E:disabled

匹配表单中禁用的元素

E:checked

匹配表单中被选中的radio或checkbox元素

E::selection

匹配用户当前选中的元素

E:root

匹配文档的根元素,对于HTML文档,就是HTML元素

E:nth-child(n)

匹配其父元素的第n个子元素,第一个编号为1

E:nth-last-child(n)

匹配其父元素的倒数第n个子元素,第一个编号为1

E:nth-of-type(n)

与:nth-child()作用类似,但是仅匹配使用同种标签的元素

E:nth-last-of-type(n)

与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素

E:last-child

匹配父元素的最后一个子元素,等同于:nth-last-child(1)

E:first-of-type

匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)

E:last-of-type

匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)

E:only-child

匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)

E:only-of-type

匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)

E:empty

匹配一个不包含任何子元素的元素,文本节点也被看作子元素

E:not(selector)

匹配不符合当前选择器的任何元素

  伪元素选择器

E:first-line

匹配E元素内容的第一行

E:first-letter

匹配E元素内容的第一个字母

E:before

在E元素之前插入生成的内容

E:after

在E元素之后插入生成的内容

jq选择器,过滤器,查找(功能最全,节点无处可逃):

选择器

实例

选取

*

$("*")

所有元素

#id

$("#lastname")

id="lastname" 的元素

.class

$(".intro")

所有 class="intro" 的元素

element

$("p")

所有 <p> 元素

.class.class

$(".intro.demo")

所有 class="intro" 且 class="demo" 的元素

 

 

 

:first

$("p:first")

第一个 <p> 元素

:last

$("p:last")

最后一个 <p> 元素

:even

$("tr:even")

所有偶数 <tr> 元素

:odd

$("tr:odd")

所有奇数 <tr> 元素

 

 

 

:eq(index)

$("ul li:eq(3)")

列表中的第四个元素(index 从 0 开始)

:gt(no)

$("ul li:gt(3)")

列出 index 大于 3 的元素

:lt(no)

$("ul li:lt(3)")

列出 index 小于 3 的元素

:not(selector)

$("input:not(:empty)")

所有不为空的 input 元素

 

 

 

:header

$(":header")

所有标题元素 <h1> - <h6>

:animated

 

所有动画元素

 

 

 

:contains(text)

$(":contains('W3School')")

包含指定字符串的所有元素

:empty

$(":empty")

无子(元素)节点的所有元素

:hidden

$("p:hidden")

所有隐藏的 <p> 元素

:visible

$("table:visible")

所有可见的表格

 

 

 

s1,s2,s3

$("th,td,.intro")

所有带有匹配选择的元素

 

 

 

[attribute]

$("[href]")

所有带有 href 属性的元素

[attribute=value]

$("[href='#']")

所有 href 属性的值等于 "#" 的元素

[attribute!=value]

$("[href!='#']")

所有 href 属性的值不等于 "#" 的元素

[attribute$=value]

$("[href$='.jpg']")

所有 href 属性的值包含以 ".jpg" 结尾的元素

 

 

 

:input

$(":input")

所有 <input> 元素

:text

$(":text")

所有 type="text" 的 <input> 元素

:password

$(":password")

所有 type="password" 的 <input> 元素

:radio

$(":radio")

所有 type="radio" 的 <input> 元素

:checkbox

$(":checkbox")

所有 type="checkbox" 的 <input> 元素

:submit

$(":submit")

所有 type="submit" 的 <input> 元素

:reset

$(":reset")

所有 type="reset" 的 <input> 元素

:button

$(":button")

所有 type="button" 的 <input> 元素

:image

$(":image")

所有 type="image" 的 <input> 元素

:file

$(":file")

所有 type="file" 的 <input> 元素

 

 

 

:enabled

$(":enabled")

所有激活的 input 元素

:disabled

$(":disabled")

所有禁用的 input 元素

:selected

$(":selected")

所有被选取的 input 元素

:checked

$(":checked")

所有被选中的 input 元素

jQuery.parent(expr)           //找父元素
jQuery.parents(expr)          //找到所有祖先元素,不限于父元素
jQuery.children(expr)        //查找所有子元素,只会找到直接的孩子节点,不会返回所有子孙
jQuery.contents()            //查找下面的所有内容,包括节点和文本。
jQuery.prev()                //查找上一个兄弟节点,不是所有的兄弟节点
jQuery.prevAll()             //查找所有之前的兄弟节点
jQuery.next()                //查找下一个兄弟节点,不是所有的兄弟节点
jQuery.nextAll()             //查找所有之后的兄弟节点
jQuery.siblings()            //查找兄弟节点,不分前后
jQuery.find(expr)            //跟jQuery.filter(expr)完全不一样,jQuery.filter(expr)是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()的返回结果,不会有初始集中筛选出一部分,而jQuery.find()的返回结果,不会有初始集合中的内容,比$("p").find("span")是从元素开始找,等于$("p span").