CSS,JavaScript,JQuery选择器的区别和联系

一.原始JS选择器.

id选择器:document.getElementById("test");

name选择器:document.getElementsByName("test");

节点选择器:document.getElementsByTagName("p");

想要选择class,可以使用:document.querySelector(".test");

二.jQuery 选择器.

1.jQuery 元素选择器.

id选择器:$("#test");

class选择器:$(".test");

节点选择器:$("p");

2.jQuery 属性选择器.

$("div[id]"); 选择所有含有id属性的div元素 
$("input[name='keleyicom']"); 选择所有的name属性等于'keleyicom'的input元素 
$("input[name!='keleyicom']") ;选择所有的name属性不等于'keleyicom'的input元素 
$("input[name^='keleyi']"); 选择所有的name属性以'keleyi'开头的input元素 
$("input[name$='keleyi']"); 选择所有的name属性以'keleyi'结尾的input元素 
$("input[name*='keleyi']");选择所有的name属性包含'keleyi'的input元素 
$("input[id][name$='keleyi']"); 可以使用多个属性进行联合选择,该选择器是得到所有的含有id属性并且那么属性以keleyi结尾的元素

3.jQuery CSS 选择器.

$("p").css("background-color","red");

4.jQuery 表单选择器.

: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 参考手册 - 选择器

http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp

备注:

1.$("input")和$(":input")和$("<input>")的区别?

$("input")是节点选择器,表示选择所有input节点.

$(":input")是表单选择器,表示选择所有表单元素,包括textarea,select.

$("<input>")是可以分为2部分理解的,<input>在html是一个独立标签,加上$,就生成了一个jquery对象,对象就是这个<input>。有时用于快速生成元素,例如:$('<div>').html('这是新建的div').addClass('classname').appendTo('body'),就在body标签后追加了这个新建的div。

2.jquery选择器空格,大于号,加号和波浪号的区别?

空格:$('parent childchild')表示获取parent下的所有的childchild节点(所有的子孙)。
大于号:$('parent > child')表示获取parent下的所有child的儿子( 第一代)。    
加号:$('pre + nextbrother')表示获得pre节点的下一个兄弟节点,相当于next()方法
波浪号:$('pre ~ brother')表示获取pre节点的后面的所有兄弟节点,相当于nextAll()方法。

三.CSS 选择器.

1.CSS 选择器分组.

h2, p {color:gray;}

2.CSS 后代选择器.

h1 em {color:red;}

3.CSS 子元素选择器.

h1 > strong {color:red;}

4.CSS 相邻兄弟选择器.

h1 + p {margin-top:50px;}

5.CSS 属性选择器.

a[href] {color:red;}
选择器描述
attribute ] 用于选取带有指定属性的元素。
attribute = value ] 用于选取带有指定属性和值的元素。
attribute ~= value ] 用于选取属性值中包含指定词汇的元素。
attribute |= value ] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
attribute ^= value ] 匹配属性值以指定值开头的每个元素。
attribute $= value ] 匹配属性值以指定值结尾的每个元素。
attribute *= value ] 匹配属性值中包含指定值的每个元素。

 6.CSS 伪类.

 描述CSS
:active 向被激活的元素添加样式。 1
:focus 向拥有键盘输入焦点的元素添加样式。 2
:hover 当鼠标悬浮在元素上方时,向元素添加样式。 1
:link 向未被访问的链接添加样式。 1
:visited 向已被访问的链接添加样式。 1
:first-child 向元素的第一个子元素添加样式。 2
:lang 向带有指定 lang 属性的元素添加样式。 2

7.CSS 伪元素.

 描述CSS
:first-letter 向文本的第一个字母添加特殊样式。 1
:first-line 向文本的首行添加特殊样式。 1
:before 在元素之前添加内容。 2
:after 在元素之后添加内容。 2

更多:CSS 选择器参考手册

http://www.w3school.com.cn/cssref/css_selectors.asp

原文地址:https://www.cnblogs.com/meng9688/p/6750599.html