所以松哥想通过几篇文章,和大家仔细聊一聊索引的正确使用姿势,结合一些具体的例子来帮助大家理解索引优化,这是一个小小的系列,可能会有几篇文章,今天先来第一篇。 1....第二个的 key 指明了 MySQL 使用哪个索引来优化查询;rows 则显示了 MySQL 为了找到所需的值而要读取的行数....所以,我们不要在 where 条件中写表达式,不仅仅是上面这种表达式,一些使用了自带函数的表达式也不能使用,我们要尽量简化 where 条件。...对于主键索引和非主键索引,使用的数据结构都是 B+Tree,唯一的区别在于叶子结点中存储的内容不同: 主键索引的叶子结点存储的是一行完整的数据。 非主键索引的叶子结点存储的则是主键值以及索引列的值。...这是两者最大的区别。 所以,搜索时如果使用了非主键索引,那么一共会搜索两棵 B+Tree,第一次搜索 B+Tree 拿到主键值后再去搜索主键索引的 B+Tree,这个过程就是所谓的回表。
', 'red'); 1.3.3 链式调用 //正确 $('#list li').addClass('strong').css('color', 'red'); 1.4 JQuery变量命名习惯 //良好的命名习惯...").method(); //正确的写法 var ul = $("#myList"); $(".active",ul).method(); 2.3 复制匿名函数 坑人指数:50 //错误的写法 $('#...'+i+'li>'; } $('#myList').html(list_items.join('')); 3.10 使用for循环,不要使用$.each循环 //js原生方法效率更好 var js_array...= new Array (); for (var i=0; i<10000; i++) { js_array[i] = i; } 3.11使用元素前,先检查其是否存在 //检查id为myDiv...的元素是否存在 if($("#myDiv").length) { } 3.12 函数总是返回false $('#myDiv').click (function () { return false
正确使用方法链 jQuery最炫的一个特性就是jQuery能够连续的进行方法调用。...学会正确使用效果在我刚开始使用jQuery的时候,就很喜欢这一点:它可以很容易使用预定义好的各种动画效果,像slideDown()和fadeIn()之类的。...你需要有额外的页面请求,而且页面上的部分内容不能立即呈现给用户,但是正确的使用这个技巧对优化会很有帮助。 18. 使用jQuery提供的工具函数 jQuery不仅仅有闪光的效果。...如何检查元素是否存在你不必检查元素是否在页面上存在就可以使用它,因为如果没有在DOM中找到合适的元素,jQuery什么也不会做。...可是当我们需要检查元素是否被选择了,或是有多少项被选择了,你可以使用length属性: 复制代码代码如下: if ($(‘#myDiv).length) { // your code } 简单之极。
如同在jQuery中一样,它是选择元素节点最重要的方法,但是在jQuery中选择器建立在CSS选择器标准库上。...属性操作(atrributes) 用来获取和更改属性的方法: .attr(name, value) 这个方法用来获取和设置属性。获取第一个符合匹配的元素的属性值。...) 检查元素是否含有此类名 $('.pear').hasClass('pear') //=> true $('apple').hasClass('fruit') //=> false $('li')...://api.jquery.com/removeClass/ 遍历 .find(selector) 在当前元素集合中选择符合选择器规则的元素集合 $('#fruits').find('li').length...,可以用负数表示倒数第 i 个元素被保留 $('li').eq(0).text() //=> Apple $('li').eq(-1).text() //=> Pear 操作DOM 操作DOM结构的方法
而且对于页面中的iframe等子页面也做了兼容处理。直接用如下的方法进行使用: // 第一种方式: 给document绑定ready事件。...3.5 层级选择器 名称 用法 描述 子代选择器 $("ul>li"); 使用>号,获取儿子层级的元素,注意,并不会获取孙子层级的元素 后代选择器 $("ul li"); 使用空格,代表后代选择器,获取...ul下的所有li元素,包括孙子等 3.6 过滤选择器 过滤选择器都带冒号 语法 用法 描述 :first $('li:first'); 获取第一个元素 :last $('li:last'); 获取最后个元素...) $("ul").children("li") 相当于$("ul>li"),子类选择器 find(selector) $("ul").find("li"); 相当于$("ul li"),后代选择器 siblings...") 检查当前的元素是否含有某个特定的类,如果有,则返回true。
jQuery 判断元素上是否绑定了事件 //jQuery event封装支持判断元素上是否绑定了事件,此方法只适用于jQuery绑定的事件 var $events = $("#foo").data("events...name="item" class="unknown" /> Item Zli> ul> 如何正确地使用toggleClass: //切换(toggle)类允许你根据某个类的 //是否存在来添加或是删除该类...has()来检查某个元素是否包含某个类或是元素: //jQuery 1.4....*包含了对这一has方法的支持。 //该方法找出某个元素是否包含了其他另一个元素类或是其他任何的你正在查找并要在其之上进行操作的东东。...; // 定制选择器的用法: $('.someClasses:test').doSomething(); 如何检查某个元素是否存在 if ($('#someDiv').length) { //万岁
(li); return ul; } 优化循环,最常见的错误之一是在每次迭代时读取数组的length属性,正确的写法如下: var names = ['George','Ringo','Paul',...使用原生的方法(如join())通常比任何非原生方法快得多,如: var arr = ['item 1', 'item 2', 'item 3', ...]; var list = 'ul>li>'...+ arr.join('li>li>') + 'li>ul>'; 不要使用with语句,任何时候调用任何变量,JavaScript引擎都必须遍历with()变量 对象属性和数组项比变量慢...,JQuery不会告诉您是否试图在一个空选择上运行大量代码—它会继续运行,就好像没有任何问题一样。...尽量不要使用HTML选项卡中的代码 检查边界条件,常用边界条件检查数据长度,数据类型,可被0整除等 输入输出使用不同的变量名称 开始于前一行代码的同一行上的左花括号,如 if(myState ===
> li>我是ul 的li> li>我是ul 的li> li>我是ul 的li> ul> 的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。...").css("color", "pink"); }) 5.筛选方法 重点: jQuery中还有一些筛选方法,类似DOM中的通过一个节点找另外一个节点...]) $(" .last"). prevAll() 查找当前元索之前所有的同辈元索 hasClass(class) $(' div' ). hasClass(" protected" ) 检查当前的元素是否含有某个特定的类...2.需要得到当前小li 的索引号,就可以显示对应索引号的图片 3.jQuery 得到当前元素索引号 $(this).index() 4.中间对应的图片,可以通过 eq(index) 方法去选择 5.显示元素
下班之前终于搞定了使用$.ajax增加的动态元素获取不到的问题,原来是使用.on方法(老版本是.live),这里记录一下,顺便赞一下jQuery,通过使用getJSON,.append,.empty等,...唯一的一点就是版本太多了,最新版本支持的浏览器对于中国用户来说是个噩梦。...我是用法 $('#parent').on("click", "#child", function() {});//#parent是非ajax方式生成的,#child是ajax回来的数据...append到#parent的 我的代码 $('#taskComments').on("mouseenter", "#taskComment", function(){
先创建元素点,创建元素节点使用Jquery的工厂函数 li1=("li>li>") 代码返回$li1就是一个由DOM对象包装成的JQuery对象。...2、创建文本节点 使用JQuery的工厂函数$()同样能够创建文本节点,创建文本节点的JQuery代码如下: li2=("li>苹果li>"); 代码返回$li2就是一个由...判断元素是否使用了样式(element).hasClass(),方法如下:(element).hasClass(class);例: alert($("p").hasClass("ul"));...打印出p元素是否有ul样式。 ...closest()方法()用来取得最近的匹配元素,首先检查当前元素是否匹配如果匹配则直接返回,否则继续向上查找父元素中符合条件的元素返回,如果没有匹配的元素则返回空JQuery对象。
(2)用到indexOf()方法,查找字符串中是否有指定的浏览器类型。...如何使用多个属性来进行过滤 //在使用许多相类似的有着不同类型的input元素时,这种基于精确度的方法很有用 var elements = $('#someid input[type=sometype...在jQuery中如何测试某个元素是否可见 if($(element).is(':visible') == 'true') { //该元素是可见的 } 16....如何使用closest来取得父元素: closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上。...如何把整个的列表元素(List Element,LI)变成可点击的 $("ul li").click(function(){ window.location=$(this).find("a").attr
jQuery 对象是经过包装的dom对象(伪数组形式存储) jQuery对象才能使用jQuery方法,不能混用 1.1.4 jQuery对象和Dom对象转换 // DOM对象转换成jQuery对象...$s(“Ii.current”) 交集元素 2.1.2 层级选择器 名称 用法 描述 子代选择器 $(“ul>li”); 使用>号,获取亲儿子层级的元素;注意,并不会获取孙子层级的元素 后代选择器...$(“ul li”); 使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等 2.1.3 筛选选择器 名称 用法 描述 :first $(‘li:first’) 获取第一个li元素 :last...查找当前元素之前所有的同辈元素 hasclass(class) $( 'div ’ ).hasClass(“protected”) 检查当前的元素是否含有某个特定的类,如果有,则返回true eq(index...创建元素 var li = $('li>新创建的元素li>'); **添加元素(**在后面添加) $('ul').append(li); 添加元素(在前面添加) $('ul').prepend(
对节点的操作 查找节点 查找节点可以直接利用jQuery选择器来完成,非常便利。 插入节点 jQuery提供了8种插入节点的方法。...ul>元素中 $("ul li").remove("li[title!...需要注意的是,这个方法不会将匹配的元素从jQuery对象中删除,其所有绑定的事件和附加数据可以保留下来。 如果将来再使用这个元素,相关事件和数据依然存在。...// 如果使用remove()方法删除元素,那么之前绑定的事件将会失效。 (3)empty() 清空元素中的所有后代节点。...$("ul").empty(); 复制节点 可以使用clone()方法来复制节点。如果在clone方法中传人参数true,表示复制元素的同时也复制元素中绑定的事件。
>Pearli> .hasClass( className ) 检查匹配的元素是否有给出的类名 $('.pear').hasClass('pear') //=> true $('apple')....(selector) .is(function(index)) 有任何元素匹配selector就返回true。如果使用判定函数,判定函数在选中的元素中执行,所以this指向当前的元素。...如果使用函数方法,这个函数在被选择的元素中执行,所以this指向的手势当前元素。...使用.eq(-i)就从最后一个元素向前数。...ul>ul id="vegetables">ul> $.contains( container, contained ) 查看cotained元素是否是container元素的子元素 $
通过 __proto__ 可以查看该对象的的原型(即jQuery本身)所具有的属性和方法。 2.2 jQuery选择器 jQuery选择器类似CSS选择器的机制的一种操作HTML元素的方式。...ul> li>PHPli>li>iOSli> li>Javali>li>UIli> ul> jquery-1.12.4.min.js...过滤方法: 语法 说明 eq(index) 获取第N个元素 filter(expr|obj|ele|fn) 使用选择器、对象、元素或函数完成指定元素的筛选 hasClass(class) 检查当前的元素是否含有某个特定的类... ul>li>Springli>li>summerli>ul> ul>li>autumnli>li>winterli>ul> 是否存在,存在则删除,不存在则添加 hasClass(class) 判断样式 判断元素是否具有class样式 addClass()和removeClass()方法经常一起使用来切换元素的样式
DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同样DOM对象也不能使用jQuery里的方法,卵用会报错 约定:如果获取的是jQuery对象,那么在变量前面加上$ var $...//对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。...//像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此 //需要使用prop方法去操作才能获得正确的结果。...// .on的selector参数是筛选出调用.on方法的dom元素的指定子元素,如: // $('ul').on('click', 'li', function(){console.log...('click');})就是筛选出ul下的li给其绑定 // click事件; [selector]参数的好处: 好处在于.on方法为动态添加的元素也能绑上指定事件;
前文回顾 riot.js教程【五】标签嵌套、命名元素、事件、标签条件 riot.js教程【四】Mixins、HTML内嵌表达式 riot.js教程【三】访问DOM元素、使用jquery、mount...: 'Second item' }, { title: 'Third item' } ] 在上面的代码中,具有each属性的元素,会被重复N次,N等于items数组的元素数量...,可以使用event.item对象访问当前数组元素的属性, parent.remove方法执行完之后,会执行父组件的update事件; 当在一个父组件实例执行this.update()的时候 ,该父组件下的所有子组件都会更新...; riotjs是通过JSON.stringify来判断对象是否有变更,以此来决定是否要更新HTML元素 key属性 你可以在循环标签的时候,使用key属性 ul> li...你可以把HTML元素当作riot标签使用,但只能在body内这么用,如下: ul data-is="my-list">ul> riot.mount('my-list') 当你碰到这种情况的时候
目前超过 90% 的网站都使用了 jQuery 库,jQuery 的宗旨:写的更少,做得更多!.../libs/jquery/1.9.1/jquery.min.js"> # 1.5 jQuery 快速使用 jQuery 核心对象:即执行 jQuery 核心函数返回的对象,jQuery 对象内部包含的是 dom 元素对象的伪数组 (可能只有一个元素),jQuery 对象拥有很多有用的属性和方法,让程序员能方便的操作...> li class="beauty">列表项4li> ul> $('li').removeClass('beauty'); # 4. hasClass() 方法描述:确定任何一个匹配元素是否有被分配给定的样式类...如果传入一个 true,则表示是否会复制元素上的事件处理函数,从 jQuery 1.4 开始,元素数据也会被复制。
2. jQuery对象:jquery对象就是使用jquery的方法获取页面中的元素返回的对象就是jQuery对象。...{});就是典型的DOM对象转jQuery对象 jQuery对象转换成DOM对象: var $li = $(“li”); //第一种方法(推荐使用) $li[0] //第二种方法 $li.get(0)...交集选择器 $(“div.redClass”); 获取class为redClass的div元素 子代选择器 $(“ul>li”); 使用>号,获取儿子层级的元素,注意,并不会获取孙子层级的元素 后代选择器...$(“ul li”); 使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等 跟CSS的选择器一模一样。...,推荐给li注册事件,这样通过index方法才能获取到正确的索引值。
领取专属 10元无门槛券
手把手带您无忧上云