JQuery学习

1 关于text(),返回选择元素结果集,实际就是该jq obj对象内的html可视内容;

2 关于选择器。大部分时间,都把jQuery() or $(),用作选择器,实际上,配合appendTo(),还可以实现动态创建元素,如

这里创建后,新元素处于body 元素的最后。

3 查看当前jQuery版本号:$.fn.jquery;$().jquery;jQuery.fn.jquery;jQuery().jquery。

4 $在非正常的dom 文档模型下是会出现异常的,所以,建议使用html5的文档模型

5 何时引入jquery脚本。从1.3起,ready()并不能保证当前所有的css文件都已经被加载,所以,如果使用1.3以后版本的jquery,须在引入脚本前引入所有css文件。

6 关于文档是否准备好,以下三个用法,标明了dom加载状态,主要是由于事件window.onload是否执行的缘故。文档加载完成,并不代表window加载完成。

所以,在使用的时候,要注意区别,根据实际环境来使用。

7 关于引入脚本的非压缩版本和压缩版本的区别。当开发时,使用非压缩的,有助于调试错误,而生产环境,则使用压缩的,加快页面加载速度。如下:

8 load()与unload()。当window加载完成时,使用load()执行脚本,当用户离开也即关闭页面是,使用unload()执行脚本。如下:

注意,这里的load()和ajax的load()是不同的表现。

9 jquery 对象链。使用完jQuery的一个方法后,返回的依旧是一个jquery对象。

10 匿名函数,jQuery的别名$。如下(不会存在冲突):

11 end()的用法。释放距离最近的一个选择器所返回的对象,返回上一级选择器返回的对象。如下:

12 jQuery函数的多面性。选择、创建、ready()时间的捷径。如下:

13 this和$(this)的区别。当你的脚本里当前对象唯一时,使用两者皆可。如果使用each(),对象在变化中,则需要使用$(this)来获取动态的当前对象。

14 获取对象集中的某一个顺序元素对象,有三种方法:

注意,其中,[0]、get(0)返回的为dom对象,而非jQuery对象,而eq(0)则返回jQuery对象,可以继续进行jQuery链操作。

15 元素属性设置。一般使用attr(‘a’, ‘b’)的形式,但是,还可以使用如下方式,只是,只适用于html存在的属性。

1 输入成本,一直是程序员最大的芥蒂,至少我是。所以,把$,或者jQuery换下来,用自己喜欢的名字代替。如下:

之所以采用匿名函数来执行代码,就是不想对一个项目中其他人,比如html上的$使用操作污染。

2 若要对dom中一个元素集进行相同的操作,那么就是用j().each(function(){}); 或者j.each()。

3 对于元素集选择,jQuery选择器使用document 顺序返回对象,而非选择器写法顺序返回对象。例如:

4 在笔记1中提到 j(‘a’).eq(0); ,其实等价于 j(‘a:eq(0)’);

5 强大的j().is();,只是,对于判断某个元素是否有某个class,已经有hasClass(),不知道到当初是如何设计这个重复功能的?!

6 定义自己的选择器。除了jQuery提供的:hidden等外,我们可以定义自己的:

只要页面中有自定义的html element 属性(有时候太有用了)。当然,也可即用即定义:

7 选择器。

A 过滤器。元素集顺序。

:first :last?:even :odd?:eq(index) :gt(index) ?:lt(index)

B DOM关系。

ancestor
descendant
parent > child
prev + next
prev ~ siblings
:nth-child(selector) :first-child?:last-child?:only-child :empty :has(selector) :parent

C 当id 、class作为选择器使用时,如果命名含有以下字符,需要做特殊处理,即 j(‘.\\*’); ,j(‘#\\*’); 。

# ; & , . + * ~ ‘ : ” ! ^ $ [ ] ( ) = > | /

例如,有一段html:

则使用如下写法获取该元素对象:

D 有趣有用的【堆叠选择器】(自己乱叫的),加入有一段html代码,要做操作但是不能改变其结构,可不能给该元素添加任何属性了,咋办,举例:

对应的还有开始标记 j(‘e[proName ^= “str”]’); 。 !=不含有。这算是正则运算符的简单运用。如上面提到的,可以自己定义过滤器,那就可以定义一个正则过滤器:

复杂了复杂了。

8 !0,真,!1 就是假。所以,把true、false 省略吧,用这两个。

1 filter() 和 find() 的区别。前者是在已经被选择的元素集中进行过滤,而后者,却是在已经选择的元素集中更新当前元素集。

2 filter(),还可以给它传值一个函数,就像自定义过滤器。

3 过滤方法。expression接受css表达式。

childern(‘expression’)
next(‘expression’)
nextAll(‘expression’)
parent(‘expression’)
parents(‘expression’)
prev(‘expression’)
prevAll(‘expression’)
siblings(‘expression’)
closest(‘expression’)

4 使用$()给当前dom创建新节点后,还可以对创建的新元素进行操作find(),操作完成后,可以使用end()结束find(),进而将安排这个新节点的位置,如下代码:

其实,是通过document.createElement DOM method 来实现的,所以,传值给j()的字符串就要是完整闭合的、友好结构的、元素包含关系正确的元素集。

5 remove() 其实,只是吧节点从dom中移出了,但是并未把它从jquery wrapper set中移出,所以,可以继续使用。如:

6表单元素操作。

文本框操作

Radio单选框操作

CheckBox复选框操作

激活、失效按钮。

选中、去选可选框、单选框。

select的操作。

select多选项。使用val设置。可以存放在一个数组对象中。

通过表单元素类型获取元素对象。

其实,这是j(‘eSelector[proName=”str”]’); 的等效用法。

:text :password :radio :checkbox :submit :image :reset :file :button

选中所有表单元素。

注意区别。

7 调试代码,不喜欢alert,但是为了兼容性问题处理,IE下不可以使用consloe,所以,写个统一的扩展吧。更多更能,慢慢扩展了。

8 Ajax操作模块

9 循环操作

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部