##第一个jQuery程序

$(‘div’).html(“hello.world”);


##DOM对象和jQuery对象互转化

jQuery对象和DOM对象是不一样的,但是都能操作DOM

get()方法(jquery对象转化为DOM对象)

var $main =$(’.main’); // jquer对象

var main = $main.get(0); // 通过get方法,转化成DOM对象

main.style.color = ‘#c7edcc’; // 操作DOM对象属性

DOM对象转化为jQuery对象

var main = document.getElementsByClassName(‘main’); // DOM对象

var $main = $(main); // jQuery对象

$main.css(‘color’,’#c7edcc’); // 操作jQuery对象属性


##jQuery选择器

元素选择器

$(‘div’)

ID选择器

$("#main")

id是唯一性,只能在页面中使用一次

类选择器

$(’.main’)

全选择器

$(’*’)

层次选择器

$(‘div .main’)

属性选择器

$(“a[href=“https://zhizheng123.test.com”]”) // 选择带href属性的a元素

可以使用前缀或者后缀来选择 $(“div[name^=“yes”]”) // 选择div标签的neme属性值为yes开头的 $(“div[name$=“yes”]”) // 选择div标签的neme属性值为yes结尾的

组合选择器

$(“div[class=divs]”)

组合选择器其实就是用多个选择器组合起来

多项选择器

$(“div[class=divs],a[href=“https://zhizheng123.test.com”)

多项选择器就是将多个选择器用逗号组合起来

层级选择器 $(“ul.nev li.active”)

必须确保DOM元素之前具有层级关系,每个层级使用空格分开

子选择器

$(“ul.nev>li.active”)

必须确保层级关系是父子关系(不是祖先关系)

过滤选择器

$(“div:first”) // 过滤出第一个div元素

$(“ul li:first-child”) // 过滤出每个ul元素下的第一个li元素

$(“ul li:last-child”) // 过滤出每个ul元素下的最后一个li元素

$(“ul li:nth-child(3)”) // 过滤出每个ul元素下的最后一个li元素

$(“ul li:nth-child(odd)”) // 过滤出每个ul元素下个数为奇数的li元素,从1开始

$(“ul li:nth-child(even)”) // 过滤出每个ul元素下个数为偶数的li元素

$(‘div’).find(’.main’) // 选择div元素下的全部带有main类的元素

$(.main).parent() // 选择.main类的上一级(父级)元素

$(.main).parents() // 选择.main类的父(祖先)级元素

特殊选择器

$(":input”) // 选择input,textarea,select,button类型的元素

$(":file") // 选择input元素type属性为file的

$(":checkbox") // 选择input元素type属性为checkbox的

$(":radio") // 选择input元素type属性为radio的

$(":focus") // 选择当前输入框焦点所在的元素

$(":checked") // 选择当前被勾上的单选框和复选框

$(":enabled") // 选择当前可以输入的元素,例如input

$(":disabled") // 和enabled相反,选择当前不能输入的

$(‘div:visible’) // 选择当前所有可见的div

$(‘div:hidden’) // 选择当前所有隐藏的div

查找以及过滤

查找使用find(),例如:

var yes = div.find(’.container’)

如果需要从父级或者祖先查找,需要用到parent(),例如:

var abc = yes.parent(’.container’) // 如果过滤条件不符合,返回空jQuery对象

如果在同一级中,需要用到prev()和next(),例如:

abc.prev() // 在同一级中向上

abc.next() // 在同一级中向下

过滤

这个过滤不是上面那个过滤选择器之类(那个是选择),这个是真的过滤。过滤掉不符合条件的,例如:

var abc = yes.filter(’.container’) // 过滤掉div元素中带有.container类的

map()方法可以将jQuery对象包含的DOM元素转换为其他对象(例如数组,数组也是一个对象)例如:

var abc = yes.map(function () { return this.innerHTML; }).get();


##操作DOM

$(.main).css({xxx : ‘xx’,xxx : ‘xx’}) // 操作多条样式(对象)多个样式用逗号分开

.addClass() // 为被选择元素添加一个类或者多个类(class属性),多个类要使用空格分隔开

.removeClass() // 为被选择元素移除一个类或者多个类(class属性),多个类要使用空格分隔开,如果没有指定要移除那个类,那么将移除全部类

.hasClass() // 检测被选择元素是否存在某个类,返回的值为布尔值

.hide() // 被选择元素隐藏,可选参数为时间,单位为毫秒

.show() // 被选择元素显示,可选参数为时间,单位为毫秒

.fadeOut() // 被选择元素隐藏,带淡出效果,可选参数为时间,单位为毫秒

.fadeIn() // 被选择元素显示,带淡入效果,可选参数为时间,单位为毫秒

.slideUp() // 被选择元素隐藏,带滑动效果,可选参数为时间,单位为毫秒

.slideDown() // 被选择元素显示,带滑动效果,可选参数为时间,单位为毫秒

.animate() // 可以修改被选择元素的样式,将样式过渡到设定值,单位为毫秒

.delay() // 可以和.animate()搭配来延长执行.animate()的功能,单位为毫秒

$(’.main’).text(‘hallo,world’); // 只能操作文本

.html(’hallo,world’) // 可以添加元素标签

.prepend(’hallo,world’) // 在前面添加

.append(’hallo,world’) // 在后面添加

.remove() // 删除


##事件

$(’.main’).click() // 点击触发事件(单击)

.ready() // 当文档加载完成才执行触发事件

.dblclick() // 双击触发事件

.mouseenter() // 当鼠标移动到元素触发事件(接触元素)

.mouseleave() // 当鼠标离开元素触发事件

.mousemove() // 当鼠标在指定元素中移动时触发事件

.mousedown() // 当鼠标移动元素,并且单击时触发事件

.mouseup() // 当鼠标在元素上点击,松开鼠标按键时触发事件

.hover() // 当鼠标移动到元素和离开元素时触发事件,有两个指定函数,但进入时触发第一个函数,离开时触发第二个函数

.focus() // 当焦点在元素上时,触发事件

.blur() // 当元素失去焦点时,触发事件

.keyup() // 当键盘被松开时触发事件

.keydown() // 当键盘被点击时触发事件

.keypress() // 当在输入处键盘被按键时触发(屏蔽输入法的按键,每输入一个字符,触发一次)

.scroll() // 当元素被滚动时触发(搭配overflow:scroll;使用更佳)

.resize() // 当对浏览器窗口调整大小时触发

.submit() // 当提交表单时触发(只作用在form元素)

.change() // 当元素的值被改变时,在失焦时触发(只适用文本域和 textarea元素,select 元素)

$(’.main’).val(); // 获取或者设置值(value属性,input元素)

.focus() // 当输入框得到焦点时触发

.select() // 当文本类型得到标记(被选择)时触发

.blur() // 当输入框失去焦点时触发

.submit() // 将表单数据提交到web服务器

解除事件绑定

例如:

abc.click(yes)

setTimeout(function(){ abc.off(“click”,yes)

},1000)

时间单位为毫秒

如果不是使用函数来调用的,可以直接使用off(‘click’)来解除click事件,也可以直接用off()来解除全部被绑定事件


##操作元素属性

$(’.main’).attr(“color”,“333”) // 设置或者返回被选元素的属性和值

.prop() // 设置或者返回被选元素的属性和值

.removeAttr() // 移除属性

注意:

操作自定义属性要使用attr(),操作元素本身就携带的固有属性推荐使用prop()


AJAX

jQuery提供了ajax()函数,例如:

var hallo = $.ajax(‘url:/test.txt’,dataType: ’text’)

ajax()需要一个可选参数,一般的参数有:

url : 发送请求的地址,默认为当前页面

dataType :接收的数据格式,例如:html,text等等,如果没有提供该参数,由Content-Type来处理

async : 是否执行异步请求,没有提供该参数时,默认为true

data : 发送到服务器的数据,可以是字符串,对象或者数组

success : 请求成功后的回调函数

get()

jQuery提供了get方法,例如:

var abc = $.get(url: /test.html,{ user: ‘root’, pass: ‘123’ })

如果这样写,那么链接为/test.html?user=root&pass=123

post()

var abc = $.post(url: /test.html,{ user: ‘root’, pass: ‘123’ })

getJSON()

var abc = $.getJSON(url: /test.html,{ user: ‘root’, pass: ‘123’ }).done(function(datas){})

jQuery允许扩展jQuery来自定义方法

$.fn.hallo = function(){ this.css(‘width’,‘100px’).css(‘height’,‘100px’) return this }

调用jQuery插件

$(’.main’).hallo()

jQuery插件参数

$.fn.hallo = function(){ var widths = options && options.width || ‘1920px’ var heights = options && options.height || ‘1080px’ this.css(‘width’,widths).css(‘height’,heights) return this }

$(’.main’).hallo({ width: ‘800px’ height: ‘600px’ })