-
除此之外,如果页面有多个ID相同,也只会返回文档中第一次出现的元素。IE8之前在针对表单的处理时候,表单的name与id重名,并且name在id之前,则会返回表单元素: <input name="aaron" value="测试"> <div id="aaron">重名</div>查看全部
-
这就是一个标准的立即执行的匿名函数的标准写法 (function(a,b){ b(a) }('a',function(s){ console.log(s) }) ) js的语法分析器规则是:当“()”作为一个运算符时(权威指南里有详细的说明),里面填的都解释为表达式,既然是表达式就有结果,这个结果就是一个无名函数的指针(或者说引用),这个指针在内存的函数栈里,然后再用“()”运行这个无名函数。跟先定义一个函数,然后用()调用它是一个道理。查看全部
-
1:jQuery.data(element,[key],[value]),每一个element都会有自己的一个{key:value}对象保存着数据,所以新建的对象就算有key相同它也不会覆盖原来存在的对象key所对应的value,因为新对象保存是是在另一个{key:value}对象中 2:$("div").data("a","aaaa") 它是把数据绑定每一个匹配div节点的元素上 源码可以看出来,说到底,数据缓存就是在目标对象与缓存体间建立一对一的关系,整个Data类其实都是围绕着 thia.cache 内部的数据做增删改查的操作。查看全部
-
JS的内存泄露,无怪乎就是从DOM中remove了元素,但是依然有变量或者对象引用了该DOM对象。然后内存中无法删除。使得浏览器的内存占用居高不下。这种内存占用,随着浏览器的刷新,会自动释放。 而另外一种情况,就是循环引用,一个DOM对象和JS对象之间互相引用,这样造成的情况更严重一些,即使刷新,内存也不会减少。这就是严格意义上说的内存泄露了。 所以在平时实际应用中, 我们经常需要给元素缓存一些数据,并且这些数据往往和DOM元素紧密相关。由于DOM元素(节点)也是对象, 所以我们可以直接扩展DOM元素的属性,但是如果给DOM元素添加自定义的属性和过多的数据可能会引起内存泄漏,所以应该要尽量避免这样做。 因此更好的解决方法是使用一种低耦合的方式让DOM和缓存数据能够联系起来。 所以我们必须有一种机制,避免引用数据直接依附在DOM对象上,这样尽量避免内存泄漏的产生。jQuery的缓存系统就很好的解决了这一问题。查看全部
-
在构造函数中的return会返回什么呢? 1.可以返回一个对象,那么得到的是返回的对象; 2.其他的都是返回this所指代的对象;查看全部
-
原来原型的作用是实例间的公用...查看全部
-
先顺序执行,最后执行回调查看全部
-
test查看全部
-
ready与load那一个先执行,那一个后执行?答案是ready先执行,load后执行。查看全部
-
这里要区分2个概念一个是匿名函数,一个是自执行。顾名思义,匿名函数,就是没有函数名的函数,也就是不存在外部引用。查看全部
-
Write less,Do more !查看全部
-
设计该模式背后的主要动力是促进形成松散耦合。在这种模式中,并不是一个对象调用另一个对象的方法,而是一个对象订阅另一个对象的特定活动并在状态改变后获得通知。 总的来说,观察者模式所做的工作就是在解耦,让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响到另一边的变化。查看全部
-
观察者的使用场合 观察者的使用场合就是:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。 组件开发为了保证组件可以在不同的项目中都适用,其必须是对其常用功能抽象出来加以实现,绝不会包含具体的业务逻辑而某一特定的项目使用者在其业务场景中使用组件时不可避免的要加入不同场景的业务逻辑。 疑问:有的时候,总是分不清楚哪些是功能哪些是业务逻辑查看全部
-
The Write Less,Do More(写更少,做更多),无疑就是jQuery的核心理念,简洁的API、优雅的链式、强大的查询与便捷的操作。查看全部
-
一般选择器的匹配模式(包括jq1.2之前),都是一个顺序的思维方式,在需要递进式匹配时,比如$(‘div span’) 这样的匹配时,执行的操作都是先匹配页面中div然后再匹配它的节点下的span标签,之后返回结果。 Sizzle则采取了相反Right To Left的实现方式,先搜寻页面中所有的span标签,再在其后的操作中才去判断它的父节点(包括父节点以上)是否为div,是则压入数组,否则pass,进入下一判断,最后返回该操作序列。查看全部
举报
0/150
提交
取消