<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用jQuery</title>
<script type="text/javascript" src="jquery-1.10.1.js"></script>
</head>
<body>
<div>空白div</div>
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
<div id="box"class="box">测试div
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
</div>
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
<div id="box"class="box">测试div
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
</div>
<div id="box"class="box">测试div</div>
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
<script type="text/javascript">
/*$('#box').click(function(){
alert("ok!");
}).css('color' , 'red').css('margin', '100px');*/ // alert($);
// alert($());
// alert($('#box')); // alert(document.getElementById('box'));
//alert($('#box').get(0));
//alert($(document.getElementById('box')));
// $('#box').css('color', 'red');
// $('div').css('color', 'red');
// alert($('div').size());
//alert($('#box').size());
//alert($('.box').size());
// alert($('.box').length);
// alert($('#box').length);
// $('#box > p').css('color', 'blue');
// $('*').css('color', 'red');
// $('#box').find('p').css('color', 'red');
// $('.box').children('p').css('color', 'red');
// $('.box').find('p').css('color', 'red');
// $('#box+p').css('color', 'red');
// $('#box').next('p').css('color', 'red');
// $('#box~p').css('color', 'red');
// $('#box').nextAll('p').css('color', 'red');
/*next 和nextAll 选择器,必须是同一个层次的后一个
和后N 个,不在同一个层次就无法选取到了。*/
/*在find()、next()、nextAll()和children()这四个方法中,如果不传递参数,就相当于传递
了“*”,即任何节点,我们不建议这么做,不但影响性能,而且由于精准度不佳可能在复杂的HTML 结构时产生怪异的结果。*/
// $('#box').next().css('color', 'red');
// $('#box').prev('p').css('color', 'red');
// $('#box').prevAll('p').css('color', 'red');
//$('#box').prevUntil('p').css('color', 'red');
// $('#box').nextUntil('p').css('color', 'red');
// $('#box').siblings('p').css('color', 'red');
/*警告:切不可写成“$('#box').prevAll('p').nextAll('p').css('color', 'red');”这种形式,因为
prevAll('p')返回的是已经上方所有指定元素,然后再nextAll('p')选定下方所有指定元素,这
样必然出现错误。*/
/*选择器快慢分析:
//这条最快,会使用原生的getElementById、ByName、ByTagName 和querySelectorAll()
$('#box').find('p');
//jQuery 会自动把这条语句转成$('#box').find('p'),这会导致一定的性能损失。它比最快
的形式慢了5%-10%
$('p', '#box');
//这条语句在jQuery 内部,会使用$.sibling()和javascript 的nextSibling()方法,一个个遍
历节点。它比最快的形式大约慢50%
$('#box').children('p');
//jQuery 内部使用Sizzle 引擎,处理各种选择器。Sizzle 引擎的选择顺序是从右到左,
所以这条语句是先选p,然后再一个个过滤出父元素#box,这导致它比最快的形式大约慢
70%
$('#box > p');
//这条语句与上一条是同样的情况。但是,上一条只选择直接的子元素,这一条可以于
选择多级子元素,所以它的速度更慢,大概比最快的形式慢了77%。
$('#box p');
////jQuery 内部会将这条语句转成$('#box').find('p'),比最快的形式慢了23%。
$('p', $('#parent'));
综上所属,最快的是find()方法,最慢的是$('#box p')这种高级选择器。如果一开始将
$('#box')进行赋值,那么jQuery 就对其变量进行缓存,那么速度会进一步提高。
var box = $('#box');
var p = box.find('p');
注意:我们应该推荐使用哪种方案呢?其实,使用哪种都差不多。这里,我们推荐使用
jQuery 提供的方法。因为不但方法的速度比高级选择器运行的更快,并且它的灵活性和扩展
性要高于高级选择器。使用“+”或“~”从字面上没有next 和nextAll 更加语义化,更加清
晰,jQuery 的方法更加丰富,提供了相对的prev 和prevAll。毕竟jQuery 是编程语言,需要能够灵活的拆分和组合选择器,而使用CSS 模式过于死板。所以,如果jQuery 提供了独立
的方法来代替某些选择器的功能,我们还是推荐优先使用独立的方法。
*/ </script>
</body>
</html>

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. SPA与DPA 攻击【转】

    转自:http://blog.sina.com.cn/s/blog_6cb58dbf0102v7ym.html SPA SPA是一种直接解释能量消耗测定值的技术.系统消耗能量的大小随微处理器执行的指令 ...

  2. Zend13.0 +XAMPP3.2.2 调试配置

    Zend 调试PHP有3种方式: (1)PHP CLI APPLICATION (2)PHP Web Application (3)PHP UnitTest (1).(2)两种方式配置相似,下图是配置 ...

  3. poj1988-种类并查集

    题意:有N个立方体(1<=N <=30,000),相应地初始时每个立方体放在一个栈中,有两种操作:1.M X Y:把包含第X个立方体的栈中的所有立方体当做一个整体拿出来压入包含第Y个立方体 ...

  4. 对Java“一切皆对象”的理念的理解

    在从HelloWorld到面向对象中,我们将int, float, double, boolean等称为基本类型(primitive type),也就是特殊的类.我们可以将一个整数理解称为一个int类 ...

  5. 第三方登录(1)OAuth(开放授权)简介及授权过程

    3个角色:服务方,开发者,用户 a.用户在第在服务注册填写个人信息, b.服务方开放OAuth, c.开发者在服务方申请第3方登录,在程序中得到令牌后,经用户同意,可得到用户的个人信息. OAuth ...

  6. explicit constructor(显示构造函数)

    按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应的数据类型的数据转换为该类对象,如下所示: class String { String(const char* p) //用C ...

  7. cdoj 1342 郭大侠与甲铁城 树状数组+离线

    郭大侠与甲铁城 Time Limit: 1500/800MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  8. tc srm 636 div2 500

    100的数据直接暴力就行,想多了... ac的代码: #include <iostream> #include <cstdio> #include <cstring> ...

  9. Android 用户界面---拖放(Drag and Drop)(三)

      设计拖放操作 本节主要内容如下: 1.  如何开始拖拽: 2.  在拖拽期间如何响应事件: 3.  如何响应落下事件: 4.  如何结束拖放操作. 开始拖拽 用户使用一个拖拽手势开始拖拽,通常是在 ...

  10. DataGridView导出Excel

    将DataGridView里面的数据,导出到表格里面去. 首先,需要添加三个引用 直接在解决方案里,右键添加引用,找到路径即可.然后再把这三个文件复制到项目的根目录下. 然后定义导出表格的函数: pu ...