tip1:jquery检查某个元素是否存在:if($("#tt").length>0){}或者if($("#tt")[0]){}

先说css选择器有:

标签选择器:td,a

ID选择器:#note{}

类选择器:.dream{}  ,  div.note{}

群组选择器:td,p,div.a{}

后代选择器:#links a{}

通配选择器:*{}

以上六种常用css选择器几乎所有浏览器都支持。此外CSS中还有:

伪类选择器:E:Pseudo-Elements{ CssRules }

子选择器:E>F{ CssRules }

临近选择器:E+F{ CssRules }

属性选择器:E[attr]{ CssRules }

遗憾的是,主流浏览器并非完全支持。

jquery选择器的写法与css选择器的写法十分相似,但,css选择器找到元素后是添加样式,而jquery选择器找到元素后是添加行为。jquery中涉及操作css样式的部分比单纯的css功能更为强大,并且拥有跨浏览器的兼容性。

jquery选择器的优势:

1、简洁的写法

2、支持css1、css2的全部和css3的部分选择器,同时有少量独有的选择器

3、完善的处理机制:

(无须像js一样判断元素是否存在。)

jquery选择器分为:基本选择器、层次选择器、过滤选择器和表单选择器。

1、基本选择器
$(“#test”); 选取id为test的元素
$(“.test”); 选取所有class为test的元素
$(“p”); 选取所有的<p>元素
$(“*”); 选取所有的元素

$(“div,span,p.myClass”); 选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素
2、层次选择器
$(“div span”); 选取<div>里的所有的<span>元素(后代元素)
$(“div>span”); 选取<div>元素下元素名是<span>的子元素 (注意:子元素和后代元素的区别)
$(‘.one+div’); 选取class为one的下一个<div> 或者$(“.one”).next(“div”); (推荐使用)
$(‘#two~div’); 选取id为two的元素后面的所有<div>兄弟元素。或者$(“#prev”).nextAll(“div”);(推荐使用)
$(“#prev”).siblings(“div”); 所有同辈元素
3、过滤选择器

基本过滤选择器:
$(“div:first”); 选取所有<div>元素中的第1个<div>元素
$(“div:last”); 选取所有<div>元素中最后一个<div>元素
$(“input:not(.myClass)”); 选取class不是myClass的<input>元素
$(“input:even”); 选取索引是偶数的<input>元素
$(“input:odd”); 选取索引是奇数的<input>元素
$(“input:eq(1)”); 选取索引等于1的<input>元素

$("input:gt(1)");选取索引号大于1的<input>元素

$("input:lt(1)");选取索引号小于1的<input>元素
$(“:header”); 选取网页中所有的<h1>,<h2>,<h3>……
$(“div:animated” ); 选取正在执行动画的<div>元素

$(":focus")选取当前获取焦点的元素

内容过滤选择器:
$(“div:contains(‘我’)”); 选取含有文本“我”的<div>元素
$(“div:empty”); 选取不包含子元素(包括文本元素)的<div>空元素
$(“div:has(p)”); 选取含有<p>元素的<div>元素。$(“div:has(.class)”)
$(“div:parent”); 选取拥有子元素(包括文本元素)的<div>元素

可见性过滤选择器
$(“:hidden”); 选取所有不可见的元素。包括<input type=”hidden”>,<div style=”display:none;”>和<div style=”visibility:hidden;”>等元素。如果只想选取<input>元素,可以使用$(“input:hidden”)例:$(‘div:hidden’).show(3000);  //show()功能是显示元素,3000是时间,单位是毫秒
$(“div:visible”); 选取所有可见的<div>元素

属性过滤选择器:
$(“div[id]”); 选取拥有属性id的元素
$(“div[title=test]”); 选取属性title为“test”的<div>元素
$(“div[title!=test]”); 选取属性title不等于“test”的<div>元素(注意:没有属性title的<div>元素也会被选取)
$(“div[title^=test]”); 选取属性title以“test”开始的<div>元素
$(“div[title$=test]”); 选取属性title以“test”结束的<div>元素
$(“div[title*=test]”); 选取属性title含有“test”的<div>元素
$(“div[id][title$=’test’]”); 选取拥有属性id,并且属性title以“test“结束的<div>元素
4、表单选择器
$(“#form1:enabled”); 选取id为“form1“的表单内的所有可用元素
$(“#form2:disabled”); 选取id为“form2“的表单内的所有不可用元素
$(“input:checked”); 选取所有被选中的<input>元素

$("select option:selecetd");选取所有被选中的选项元素
例子:
$("input[name='c']:checked").length;
$("#tb tbody tr:even").css("background-color","#888");
。。。。。还有其他一些选择器浏览器无反应,是否是由于css3操作的原因
选择器中的一些注意事项:
(1)选择器中含有".""#""("或"]"等特殊字符 用"\\"转义比如:
<div id="id#b">bb</div> 获取方法:$("#id\\#b")
<div id="id[1]">bb</div> 获取方法:$("#id\\[1\\]")
(2)1.3以上版本不再使用@,比如$("div[@title='test']");正确的写法是$("div[title='test']");
(3)选择器中含有空格。var $t_a=$(".test :hidden");和 var $t_b=$(".test:hidden")区别

案例:

.SubCategoryBox { width: 700px; }
.SubCategoryBox ul { width: 700px; display: inline-block; }
.SubCategoryBox ul li { width: 200px; float: left; height: 30px; line-height: 30px; padding-left: 20px; }
.showmore { width: 700px; text-align: center; height: 40px; line-height: 35px; margin-top: 20px; }
.showmore span { height: 35px; padding: 0px 40px; border: 1px solid #ddd; display: inline-block; background: url(arrow_down.gif) no-repeat scroll 10px center; }
.promoted { color: #ff0000; }
<div class="fz">
<div class="SubCategoryBox">
<ul>
<li><a href="#">佳能</a><i>(30440)</i></li>
<li><a href="#">索尼</a><i>(27220)</i></li>
<li><a href="#">三星</a><i>(20808)</i></li>
<li><a href="#">尼康</a><i>(17821)</i></li>
<li><a href="#">松下</a><i>(12289)</i></li>
<li><a href="#">卡西欧</a><i>(8242)</i></li>
<li><a href="#">富士</a><i>(14894)</i></li>
<li><a href="#">柯达</a><i>(9520)</i></li>
<li><a href="#">宾得</a><i>(2195)</i></li>
<li><a href="#">理光</a><i>(4114)</i></li>
<li><a href="#">奥林巴斯</a><i>(12205)</i></li>
<li><a href="#">明基</a><i>(1466)</i></li>
<li><a href="#">爱国者</a><i>(3091)</i></li>
<li><a href="#">其它品牌相机</a><i>(7275)</i></li>
</ul>
<div class="showmore">
<a href="more.html"><span>显示全部品牌</span></a>
</div>
</div>
</div>
<script>
$(function () {
var $category = $("ul li:gt(5):not(:last)");
$category.hide();
var $toggleBtn = $("div.showmore>a");
$toggleBtn.click(function () {
if ($category.is(":visible")) {
//元素隐藏
$category.hide();
$(".showmore a span")
.css("background", "url(arrow_down.gif) no-repeat scroll 10px center")
.text("显示全部品牌");
$("ul li").removeClass("promoted");
} else {
//元素显示
$category.show();
$(".showmore a span")
.css("background", "url(arrow_up.gif) no-repeat scroll 10px center")
.text("精简显示品牌");
$("ul li").filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')")
.addClass("promoted");
}
return false;
})
})
</script>

注:图片未加。。。

2 《锋利的jQuery》jQuery选择器的更多相关文章

  1. JQuery 选择器

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

  2. jQuery的案例及必知重要的jQuery选择器

    Jquery能做什么 访问和操作DOM元素 控制页面样式 对页面事件进行处理 扩展新的jQuery插件 与Ajax技术完美结合 Jquery的优势 体积小,压缩后只有100KB左右 l强大的选择器 出 ...

  3. 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器

    × 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...

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

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

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

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

  6. 深入学习jQuery选择器系列第八篇——过滤选择器之伪子元素选择器

    × 目录 [1]通用形式 [2]反向形式 [3]首尾元素 [4]唯一元素 前面的话 本文是子元素选择器的续篇,主要介绍关于nth-of-type()选择器的内容.该部分内容并非没有出现在<锋利的 ...

  7. 深入学习jQuery选择器系列第四篇——过滤选择器之属性选择器

    × 目录 [1]简单属性 [2]具体属性 [3]条件属性 前面的话 属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素,对应于CSS中的属性选择器.属性过滤选择器可分为简单属性选择器.具体属性选 ...

  8. 深入学习jQuery选择器系列第二篇——过滤选择器之子元素选择器

    × 目录 [1]通用形式 [2]反向形式 [3]首尾元素 [4]唯一元素 前面的话 在上一篇中已经介绍过基础选择器和层级选择器,本文开始介绍过滤选择器.过滤选择器是jQuery选择器中最为庞大也是最为 ...

  9. jQuery-1.9.1源码分析系列(二)jQuery选择器

    1.选择器结构 jQuery的选择器根据源码可以分为几块 init: function( selector, context, rootjQuery ) { ... // HANDLE: $(&quo ...

  10. jQuery-1.9.1源码分析系列(二)jQuery选择器续1

    在分析之前说一点题外话. ownerDocument和 documentElement的区别 ownerDocument是Node对象的一个属性,返回的是某个元素的根节点文档对象:即document对 ...

随机推荐

  1. 慕课网python进阶函数式编程学习记录

    函数 不等于 函数式 函数: function 函数式: functional,一种编程范式 就好比计算机 不等于 计算 c语言: 函数 python :函数式(计算) 函数式编程特点: 把计算视为函 ...

  2. Python moni模拟鼠标事件

    7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4 ...

  3. 开源 免费 java CMS - FreeCMS2.1 会员我的留言

    项目地址:http://www.freeteam.cn/ 我的留言 从左側管理菜单点击我的留言进入.在这里能够查看当前登录会员的全部留言记录. 查看留言 点击留言标题能够查看留言具体内容. 删除留言 ...

  4. CNN卷积神经网络新想法

    近期一直在看卷积神经网络,想改进改进弄出点新东西来.看了好多论文,写了一篇综述.对深度学习中卷积神经网络有了一些新认识,和大家分享下. 事实上卷积神经网络并非一项新兴的算法.早在上世纪八十年代就已经被 ...

  5. 策略模式(headfirst设计模式学习笔记)

    鸭子的行为被封装 进入一组类中,能够轻易的扩展和改变.假设须要能够执行时改变行为! 策略模式定义了算法族.分别封装起来.让他们能够相互替换,此模式让算法的变化独立于使用算法的客户. 继承,相似之处用继 ...

  6. 对于Json和对象转换的学习

    学习这个的用处有非常多的:        在传输数据过程中比較查看数据比較清晰,代码也较清晰.也能够避免split函数带来的隐藏bug 当然也有不足:        准备工具较繁琐,须要准备对象(当然 ...

  7. How do you stop Ansible from creating .retry files in the home directory?

    There are two options that you can add to the [defaults] section of the ansible.cfg file that will c ...

  8. VueJS样式绑定之内联样式v-bind:style

    我们可以在 v-bind:style 直接设置样式: 直接添加样式属性 HTML <!DOCTYPE html> <html> <head> <meta ch ...

  9. 【转载】通过sqlserver日志恢复误删除的数据

    如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解. 我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web. ...

  10. Spring学习三----------注入方式

    © 版权声明:本文为博主原创文章,转载请注明出处 Spring注入方式 本篇博客只讲最常用的两种注入方式:设值注入和构造器注入.代码为完整代码,复制即可使用. 1.目录结构 2.pom.xml < ...