第十九章 jQuery类库
1、传递HTML文本字符串给$()方法,jQuery会根据传入的文本创建好HTML元素并封装为jQuery对象返回。
2、想要遍历jQuery对象中的所有元素时,可以调用each()方法来代替for循环。回调函数里this关键字指代Element对象。each()方法还会将索引值和该元素作为第一个和第二个参数传递给回调函数。注意,this和第二个参数都是原生文档元素,而不是jQuery对象,如果想使用jQuery方法操作该元素,需要用$()封装它。
3、jQuery的each()和forEach()有一个显著区别:如果回调函数在任一个元素上返回false,遍历将在该元素后中止。
4、val()方法用来设置和获取HTML表单元素的value属性,还可用于获取和设置复选框、单选按钮一级<select>元素的选中状态。
5、offset()返回元素的绝对位置,是文档坐标。position()则返回相对于元素的offsetParent()的偏移量。
6、outerWidth()和outerHeight()通常返回的是包含元素内边距和边框的尺寸。如果传入true值,还可以返回包含元素外边距的尺寸。
7、clone()创建并返回每一个选中元素的一个副本。返回的jQuery对象的元素还不是文档的一部分。clone()不会复制事件处理程序和与元素关联的其他数据。如果想复制这些额外的数据,传入true。
8、包装元素。wrap()包装每一个选中的元素。wrapInner()包装每一个选中元素的内容。wrapAll()则将选中的元素作为一组来包装。
9、empty()会删除每个选中元素的所有子节点,但不会修改元素自身。remove()方法会从文档中移除选中元素,如果传入一个参数,会被作为选择器,移除匹配选择器的元素。
10、将元素重新插入文档前,移除操作是没有必要的,简单地将其插入新位置,就会移动它们。
11、detach()方法和remove()类似,但不会移除事件处理程序和数据,想临时从文档中移除元素以便后续再次插入时,detach()会更有用。
12、unwrap()方法可以实现元素的移除,它是包装元素的反操作。
13、可以在iframe和图片上使用load()方法。
14、hover()方法用来给mouseenter和mouseleave事件注册处理程序。调用hover(f,g)就和调用mouseenter(f)然后调用mouseleave(g)一样。也可表示为$("a").bind({mouseenter : f , mouseleave : g});
15、处理程序返回false时,与该事件相关联的默认操作,以及该事件接下来的冒泡都会被取消。等同于调用preventDefault()和stopPropagation()。
16、事件处理程序的高级注册,调用bind()。事件类型是第一个参数,处理程序是第三个参数。在这两个参数中间可以传入任何值,该值会被设置为Event对象的data属性,可以通过这种方式传递额外数据给处理程序,不需要使用闭包,有时很有用。
17、使用jQuery.event.trigger()工具函数,来全局触发事件,更高效,不冒泡。
18、如果想调用事件处理程序但不执行默认操作,可以使用triggerHandler()替代trigger()。