(之所以字体弄那么大是因为省眼,程序员不容易,程序员的眼睛更不容易,请保护我们的眼睛)

选择器是jQuery的根基,在jQuery中,对事件处理、遍历DOM和Ajax操作都依赖于选择器。

熟练地使用选择器,不但能简化代码,而且能够事半功倍。

jQuery选择器可通过CSS选择器、条件过滤两种方式获取元素。

可以通过CSS选择器语法规则获取元素的jQuery选择器包括基本选择器、层次选择器和属性选择器;

可以通过条件过滤选取元素的jQuery选择器包括基本过滤选择器和可见性过滤选择器。

jQuery 的选择器是很强大的,在这里我总结一下常用的元素查找方法

一、基本选择器
1. id选择器(指定id元素)
将id="one"的元素背景色设置为黑色。(id选择器返单个元素)

 $(document).ready(function () {
$('#one').css('background', '#000');
});

2. class选择器(遍历css类元素)
将class="cube"的元素背景色设为黑色

 $(document).ready(function () {
$('.cube').css('background', '#000');
});

3. element选择器(遍历html元素)
将p元素的文字大小设置为12px

 $(document).ready(function () {
$('p').css('font-size', '12px');
});

4. * 选择器(遍历所有元素)

 $(document).ready(function () {
// 遍历form下的所有元素,将字体颜色设置为红色
$('form *').css('color', '#FF0000');
});

5. 并列选择器

 $(document).ready(function () {
// 将p元素和div元素的margin设为0
$('p, div').css('margin', '');
}); $(document).ready(function(){
$('#.nihao').hover(
function(){
$(this).addClass("")
},function(){
$(this).removeClass("")
});
});

基本过滤选择器

1. :first和:last(取第一个元素或最后一个元素)

 $(document).ready(function () {
$('span:first').css('color', '#FF0000');
$('span:last').css('color', '#FF0000');
});//下面的代码,G1(first元素)和G3(last元素)会变色 <span>G1</span>
<span>G2</span>
<span>G3</span>

2. :not(取非元素)

 $(document).ready(function () {
$('div:not(.wrap)').css('color', '#FF0000');
});//下面的代码,G1会变色 <div>G1</div>
<div class="wrap">G2</div>
//但是,请注意下面的代码: <div>
G1
<div class="wrap">G2</div>
</div>

当G1所在div和G2所在div是父子关系时,G1和G2都会变色。

3. :even和:odd(取偶数索引或奇数索引元素,索引从0开始,even表示偶数,odd表示奇数)

 $(document).ready(function () {
$('tr:even').css('background', '#EEE'); // 偶数行颜色
$('tr:odd').css('background', '#DADADA'); // 奇数行颜色
});A、C行颜色#EEE(第一行的索引为0),B、D行颜色#DADADA <table width="" cellpadding="" cellspacing="">
<tbody>
<tr><td>A</td></tr>
<tr><td>B</td></tr>
<tr><td>C</td></tr>
<tr><td>D</td></tr>
</tbody>
</table>
 $("#myELement")   //  选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素
$("div") // 选择所有的div标签元素,返回div元素数组
$(".myClass") // 选择使用myClass类的css的所有元素
$("*") // 选择文档中的所有的元素,可以运用多种的选择方式进行合选择:例如$("#myELement,div,.myclass")

One(层次选择器):

 $("form input")          // 选择所有的form元素中的input元素
$("#main > *") // 选择id值为main的所有的子元素
$("label + input") // 选择所有的label元素的下一个input元素节点,经测试选择器返回的是label标签后面直接跟一个input标签的所有input标签元 // 素
$("#prev ~ div") // 同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签

1. parent > child(直系子元素)

 $(document).ready(function () {
// 选取div下的第一代span元素,将字体颜色设为红色
$('div > span').css('color', '#FF0000');
});下面的代码,只有第一个span会变色,第二个span不属于div的一代子元素,颜色保持不变。 <div>
<span></span>
<p>
<span></span>
</p>
</div>

2. prev + next(下一个兄弟元素,等同于next()方法)

 $(document).ready(function () {
// 选取class为item的下一个div兄弟元素
$('.item + div').css('color', '#FF0000');
// 等价代码
//$('.item').next('div').css('color', '#FF0000');
});下面的代码,只有123和789会变色
<p class="item"></p>
<div></div>
<div></div>
<span class="item"></span>
<div></div>

3. prev ~ siblings(prev元素的所有兄弟元素,等同于nextAll()方法)

 $(document).ready(function () {
// 选取class为inside之后的所有div兄弟元素
$('.inside ~ div').css('color', '#FF0000');
// 等价代码
//$('.inside').nextAll('div').css('color', '#FF0000');
});下面的代码,G2和G4会变色 <div class="inside">G1</div>
<div>G2</div>
<span>G3</span>
<div>G4</div>

Two(属性选择器):

 $("div[id]")                  // 选择所有含有id属性的div元素
$("input[name='newsletter']") // 选择所有的name属性等于'newsletter'的input元素
$("input[name!='newsletter']")// 选择所有的name属性不等于'newsletter'的input元素
$("input[name^='news']") // 选择所有的name属性以'news'开头的input元素
$("input[name$='news']") // 选择所有的name属性以'news'结尾的input元素
$("input[name*='man']") //选择所有的name属性包含'news'的input元素

[attribute](取拥有attribute属性的元素)

下面的代码,最后一个a标签没有title属性,所以它仍然会带下划线

 <script type="text/javascript">
$(document).ready(function() {
$('a[title]').css('text-decoration', 'none');
});
</script>
<ul>
<li><a href="#" title="DOM对象和jQuery对象" class="item">DOM对象和jQuery对象</a></li>
<li><a href="#" title="jQuery选择器大全" class="item-selected">jQuery选择器大全</a></li>
<li><a href="#" title="jQuery事件大全" class="item">jQuery事件大全</a></li>
<li><a href="#" title="基于jQuery的插件开发" class="item">基于jQuery的插件开发</a></li>
<li><a href="#" title="Wordpress & jQuery" class="item">Wordpress & jQuery</a></li>
<li><a href="#" class="item">其他</a></li>
</ul>——4.2 [attribute = value]和[attribute != value](取attribute属性值等于value或不等于value的元素) 分别为class="item"和class!=item的a标签指定文字颜色 .main_shipin a:hover img{filter:Alpha(Opacity=);opacity:0.7;}

Three(基本过滤选择器):

 $("tr:first")            //   选择所有tr元素的第一个
$("tr:last") // 选择所有tr元素的最后一个
$("input:not(:checked) + span") //过滤掉:checked的选择器的所有的input元素

过滤掉:checked的选择器的所有的input元素

$("tr:even")          //     选择所有的tr元素的第0,2,4... ...个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始) 

$("tr:odd")             //   选择所有的tr元素的第1,3,5... ...个元素
$("td:eq(2)") // 选择所有的td元素中序号为2的那个td元素
$("td:gt(4)") // 选择td元素中序号大于4的所有td元素
$("td:ll(4)") // 选择td元素中序号小于4的所有的td元素
$(":header")
$("div:animated")

Four(可见性过滤选择器):

 $("div:hidden")      // 选择所有的被hidden的div元素
$("div:visible") // 选择所有的可视化的div元素

:hidden(取不可见的元素)

jQuery至1.3.2之后的:hidden选择器仅匹配display:none或<input type="hidden" />的元素,而不匹配visibility: hidden或opacity:0的元素。这也意味着hidden只匹配那些“隐藏的”并且不占空间的元素,像visibility:hidden或opactity:0的元素占据了空间,会被排除在外。

下面的代码,先弹出"hello"对话框,然后hid-1会显示,hid-2仍然是不可见的。

 <html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<style type="text/css">
div
{
margin: 10px;
width: 200px;
height: 40px;
border: 1px solid #FF0000;
display:block;
}
.hid-
{
display: none;
}
.hid-
{
visibility: hidden;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('div:hidden').show();
alert($('input:hidden').val());
});
</script>
</head>
<body>
<div class="hid-1">display: none</div>
<div class="hid-2">visibility: hidden</div>
<input type="hidden" value="hello"/>
</body>
</html>

——3.2 :visible(取可见的元素)

下面的代码,最后一个div会有背景色

 <script type="text/javascript">
$(document).ready(function() {
$('div:visible').css('background', '#EEADBB');
});
</script>
<div class="hid-1">display: none</div>
<div class="hid-2">visibility: hidden</div>
<input type="hidden" value="hello"/>
<div>
jQuery选择器
</div>

Five(内容过滤选择器):

 $("div:contains('John')") //选择所有div中含有John文本的元素
$("td:empty") // 选择所有的为空(也不包括文本节点)的td元素的数组
$("div:has(p)") // 选择所有含有p标签的div元素
$("td:parent") // 选择所有的以td为父节点的元素数组

1. :contains(text)(取包含text文本的元素)

 $(document).ready(function () {
// dd元素中包含"jQuery"文本的会变色
$('dd:contains("jQuery")').css('color', '#FF0000');
});下面的代码,第一个dd会变色 <dl>
<dt>技术</dt>
<dd>jQuery, .NET, CLR</dd>
<dt>SEO</dt>
<dd>关键字排名</dd>
<dt>其他</dt>
<dd></dd>
</dl>

2. :empty(取不包含子元素或文本为空的元素)

 $(document).ready(function () {
$('dd:empty').html('没有内容');
});

上面第三个dd会显示"没有内容"文本

3. :has(selector)(取选择器匹配的元素)

 $(document).ready(function () {
// 为包含span元素的div添加边框
$('div:has(span)').css('border', '1px solid #000');
});即使span不是div的直系子元素,也会生效 <div>
<h2>
A
<span>B</span>
</h2>
</div>

4. :parent(取包含子元素或文本的元素)

 $(document).ready(function () {
$('ol li:parent').css('border', '1px solid #000');
});下面的代码,A和D所在的li会有边框 <ol>
<li></li>
<li>A</li>
<li></li>
<li>D</li>
</ol>

Six(子元素过滤选择器):

 $("ul li:nth-child(2)"),$("ul li:nth-child(odd)"),$("ul li:nth-child(3n + 1)")
$("div span:first-child") // 返回所有的div元素的第一个子节点的数组
$("div span:last-child") // 返回所有的div元素的最后一个节点的数组
$("div button:only-child") // 返回所有的div中只有唯一一个子节点的所有子节点的数组

Seven(表单元素选择器):

 $(":input")              //    选择所有的表单输入元素,包括input, textarea, select 和 button
$(":text") // 选择所有的text input元素
$(":password") // 选择所有的password input元素
$(":radio") // 选择所有的radio input元素
$(":checkbox") // 选择所有的checkbox input元素
$(":submit") // 选择所有的submit input元素
$(":image") // 选择所有的image input元素
$(":reset") // 选择所有的reset input元素
$(":button") // 选择所有的button input元素
$(":file") // 选择所有的file input元素
$(":hidden") // 选择所有类型为hidden的input元素或表单的隐藏域

Eight(表单元素过滤选择器):

 1 $(":enabled")            // 选择所有的可操作的表单元素
2 $(":disabled") // 选择所有的不可操作的表单元素
3 $(":checked") // 选择所有的被checked的表单元素
4 $("select option:selected")// 选择所有的select 的子元素中被selected的元素

—————————————————————————————华丽的分割线——————————————————————————————————

//选取一个Name 为”S_2222″的input text框的上一个td的text值
$(”input[@ name =S_2222]“).parent().prev().text() //名字以”S_”开始,并且不是以”_R”结尾的
$(”input[@ name ^='S_']“).not(”[@ name $='_R']“) //一个名为 radio_1294的radio所选的值
$(”input[@ name =radio_1294][@checked]“).val();

$("A B") 查找A元素下面的所有子节点,包括非直接子节点

$("A>B") 查找A元素下面的直接子节点
$("A+B") 查找A元素后面的兄弟节点,包括非直接子节点
$("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点
 //1. $("A B") 查找A元素下面的所有子节点,包括非直接子节点
//例:找到表单中所有的 input 元素
//HTML 代码:
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
//jQuery 代码:
$("form input")
//结果:
[ <input name="name" />, <input name="newsletter" /> ]
 //2. $("A>B") 查找A元素下面的直接子节点
//例:匹配表单中所有的子级input元素。
//HTML 代码:
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
//jQuery 代码:
$("form > input")
//结果:
[ <input name="name" /> ]
--
 //3. $("A+B") 查找A元素后面的兄弟节点,包括非直接子节点
//例子:匹配所有跟在 label 后面的 input 元素
//HTML 代码:
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
//jQuery 代码:
$("label + input")
//结果:
[ <input name="name" />, <input name="newsletter" /> ]

--

 //4. $("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点
//例子:找到所有与表单同辈的 input 元素
//HTML 代码:
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
//jQuery 代码:
$("form ~ input")
//结果:
[ <input name="none" /> ]

编写选择器时要注意特殊符号和空格。

以上是我所总结   谢谢你的观看!

生活其实和代码是一样的  总有不顺的时候  在那时转换一下你的思维  或许 你可以改变那不顺。

                                                                                          爱自己 爱生活  爱代码  爱音乐 爱文字 爱交友 


©北京你好!


      

            作者:微冷的风

            出处:http://www.cnblogs.com/smbk/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

jQuery选择器。 5.21 《深夜还在编码的你》的更多相关文章

  1. jQuery选择器大全(48个代码片段+21幅图演示)

    选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器 的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编 ...

  2. 转:jQuery选择器大全(48个代码片段+21幅图演示)

    选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编写 ...

  3. jquery选择器从认识到使用初级篇

    1.   .class 选择器 ---一种通过元素类别属性查找元素 调用格式: $(".class") ----其中参数表示元素的css类别名称(类选择器)<input cl ...

  4. 《jQuery权威指南》学习笔记之第2章 jQuery选择器

    2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制  1.代码更简单   示例2-1     使用javascript实现隔行变色 < ...

  5. Jquery 选择器 详解 js 判断字符串是否包含另外一个字符串

    Jquery 选择器 详解   在线文档地址:http://tool.oschina.net/apidocs/apidoc?api=jquery 各种在线工具地址:http://www.ostools ...

  6. jQuery选择器,Ajax请求

    jQuery选择器: $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $( ...

  7. JQuery 选择器

    选择器是JQuery的根基,在JQuery中,对事件的处理,遍历DOM和AJAX操作都依赖于选择器.如果能够熟练地使用选择器,不仅能简化代码,而且还可以事半功倍. JQuery选择器的优势 1.简洁的 ...

  8. jQuery选择器和选取方法 http://www.cnblogs.com/MaxIE/p/4078869.html

    我们已经使用了带有简单Css选择器的jQuery选取函数:$().现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了. 一.jQuery选择器 在CSS3选择器标淮草案定义 ...

  9. 《锋利的jQuery(第2版)》笔记-第2章-jQuery选择器

    选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Ajax操作都依赖于选择器.熟练使用选择器,不仅可以简化代码,而且可以达到事半功倍的效果. 2.1 jQuery选择器是什么 1. ...

随机推荐

  1. 优化与扩展Mybatis的SqlMapper解析

    接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件. 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis ...

  2. javascript设计模式与开发实践阅读笔记(5)——策略模式

    策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换. 我的理解就是把各种方法封装成函数,同时存在一个可以调用这些方法的公共函数.这样做的好处是可以消化掉内部的分支判断,使代码效率 ...

  3. Mac删除JDK

    安装了1.6以后,没有安装1.7发现Android Studio报错: invalid source release: JDK 1.7 原因是Android Studio需要1.7以上的版本,结果再次 ...

  4. eclipse中断点调试debug

    几乎没有用过debug模式,每次想要知道结果都是sysou一下.记得曾经问乱码问题,jfinal说打断点调试看在哪里出错.简单记下普通调试. 1.在需要查看的地方打断点,方法是在行号右侧双击. 2.运 ...

  5. SQL分页查询,纯Top方式和row_number()解析函数的使用及区别

    听同事分享几种数据库的分页查询,自己感觉,还是需要整理一下MS SqlSever的分页查询的. Sql Sever 2005之前版本: select top 页大小 * from 表名 where i ...

  6. 索引深入浅出(3/10):聚集索引的B树结构

    在SQL Server里,有2种表是以存储为基础的.有聚集索引的表叫聚集表,没有聚集索引的表叫堆表.在上一篇文章,我们讨论了堆表的特性和存储结构.在这篇文章里,我们来看下聚集表. 有聚集索引的表叫聚集 ...

  7. HashMap的resize和Fail-Fast机制

    1.HashMap的resize(rehash): 当HashMap中的元素越来越多的时候,hash冲突的几率也就越来越高,因为数组的长度是固定的.所以为了提高查询的效率,就要对HashMap的数组进 ...

  8. java中的hashcode()和equals()

    equals()和hashcode()都继承自object类. equals() equals()方法在object类中定义如下: public boolean equals(Object obj) ...

  9. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  10. Objective-C语法简记

    开始学习iPhone开发了,虽然现在已经有了Swift,但我还是老老实实地学习Objective-C,鄙人入门的程序语言是C,后来学习了C#和Java,现在来学Objective-C,这篇只是一些很简 ...