JQ 基础

JQ 选择器

jQuery.com 官网
jQuery 当中最重要且独有的对象:jQuery 对象:$( )
id 选择器:$('#id' )
类选择器:$('.class') // 获取多个元素
元素选择器:$('div' )
后代选择器:$('div>ul>li' )
群组选择器:$('div,ul,ol,li' )

选择器方法:
$('#id').find('p') // 子元素
children :子元素
next:下一个兄弟
nextAll:后面所有的兄弟
prev:前一个兄弟
prevAll:前面所有的兄弟
nextUntil:向后选直到某个兄弟
prevUntil:向前选直到某个兄弟
siblings:同级上下所有元素
eq(0):索引

.filter(‘xx’):选择对应项
.middle:class 为 middle 的元素
:even:偶数项
:odd:奇数项

JQ 文本 – 获取与设置

html()等同于js 中的 innerHTML 属性

$('.box').html()  // 获取
$('.box').html('hello'// 设置

text()等同于js 中的 innerText 属性

$('.box').text()  // 获取
$('.box').text'hello'// 设置

val()等同于js 中的 value 属性

$('#inp').val()  // 获取
$('#inp').val'hello'// 设置

JQ 元素属性的操作

attr():(‘属性名’,‘属性值’)

$('#box').attr('id'// 获取
$('#box').attr('id','bb'// 设置

同时获取或设置多个属性

$('#box').attr({
    id:'nical',
    class:'red',
    name:'hello'
})

通过回调函数设置属性

$('#box').attr('class',function(index,value){
    var v = index + value + 'hello'
    return v  // 返回值
})

回调函数有两个可选的参数:
index:元素的索引
value:属性原本的值

JQ 元素样式的操作 css()

$('#box').css('height'// 获取样式
$('#box').css('height','200'// 设置修改

// jQ 元素设置尺寸时不给单位,默认使用 px
同时设置多个 css 属性

$('#box').css({
    height:200color'red'
})

通过回调函数设置 css 属性

$('#box').css('width',function(index,value){
    console.log(value);
    return paseInt(value)-800;  // 返回值
})

JQ 元素 class 类样式

添加 class 类

$('div').addClass("one"$('div').addClass("one two"// 添加多个

删除 class 类

$('div').removeClass("one")

有无切换

$('div').toggleClass("one")

// 在默认样式与指定类样式之间进行切换
toggleClass(类名,boolean)
// 当 boolean 为 true 时,添加类名
// 当 boolean 为 false时,删除类名
例如:

var i = 10;
$('div').toggleClass('three',i-->5);

支持回调函数,把函数返回值作为类名进行添加删除

$('div').toggleClass(function(){
    return 'three'
}

例子:

var count = 0;
$('div').click(function(index,className,swichBool){
    alert(index + ',' + className + ';' + swichBool);
    return $(this).hasClass('red')?'blue':'redsize';
},count++ % 3 == 0);

index:索引
class 类两个参数
及频率布尔值

JQ 元素位置

offset():获取元素相对于浏览器窗口的位置
position():获取元素相对父元素的位置(父元素应设置定位)
获取滚动条隐藏部分的高度

$(document).scrollTop()  // 垂直滚动条 获取
$(document).scrollTop(0)  // 垂直滚动条 设置
$(document).scrollLeft()  // 水平滚动条 获取
$(document).scrollLeft(0)  // 水平滚动条 设置

DOM节点操作

创建节点

var d = $('<div><div>')

插入节点,给元素追加子节点

$('body').append(d)

移动节点,把 box1 移动到 box2 里面,作为最后一个子元素

$('#box1').appendTo($('#box2'))

把节点追加到 body 内作为第一个子节点

$('body').prepend(d)

把 box1 移动到 box2 内做第一个子元素 / 节点

$('#box1').prependTo($('#box2'))

给 box3 之后添加一个兄弟元素 a

$('#box3').after($('<a>点我</a>'))

把 box3 移动到 box1 之后做兄弟节点

$('#box3').insertAfter($('#box1'))

给 box3 之前添加一个兄弟元素 a

$('#box3').before($('<a>点我</a>'))

把 box3 移动到 box1 之前做兄弟节点

$('#box3').insertBefore($('#box1'))

复制节点:clone(true)
删除节点:remove()
清空节点:empty()
替换节点:
replaceWith() // 前者替换成后者
replaceAll() // 后者替换成前者

绑定事件

可以绑定多次事件

1、事件名 + 函数

$('document').click(function(){ })

click():单击事件
dbclick():双击事件
mouseover():鼠标移入
mouseout():鼠标移出
mousedown():鼠标按下
mouseup():鼠标抬起
mouseenter():鼠标进入
mouseleave():鼠标离开
focus():获取焦点
blur():失去焦点
change():文本框内容改变
input():文本框输入

2、on()绑定事件
on(‘事件名’,函数)

$('document').on('click',function(){ })

hover()相当于 css 的 hover 伪类

$('#box').hover(function(){ },function(){ })
// hover(鼠标进入执行的函数,鼠标离开执行的函数)

事件对象

1、event对象 属性(e)
type :事件类型
target :绑定事件的 DOM 元素
data :获取事件调用时的额外数据
relatedTarget :获取移入移出目标点,离开或进入的那个 DOM
currentTarget :获取冒泡前触发的 DOM 元素等同 this
pageX / pageY:获取相对于页面原点的水平 / 垂直坐标
screenX / screenY:获取屏幕位置的水平 / 垂直坐标
clientX / clientY:获取相对页面视口的水平 / 垂直坐标
result:获取上一个相同事件的返回值
timeStamp:获取事件触发的时间戳
witch:获取按键,鼠标,键盘
altkey / shiftkey / ctrlkey / metakey:获取是否按下 alt / shift / ctrl / meta 键

2、冒泡和默认行为
如果在页面中重叠了多个元素,并且重叠的这些元素都绑定了同一个事件,那么就会出现冒泡问题。
阻止事件冒泡
event.stopPropagation()
阻止元素默认事件
event.preventDefault()
例如:

<div>
    <input type = "button" value = "按钮" />
</div>
$('input').click(function(e) {
    alert('触发了');
    e.stopPropagation( );
})

// 禁止提交表单跳转
$('form').submit(function(e){
    e.preventDefault( );
})

// 同时阻止冒泡和默认行为
$('a').click(function(e){
    return false;
})

JQ 动画

1、显示、隐藏
show():显示
hide():隐藏
toggle():显示隐藏之间切换
可选参数:(时间ms 动画效果 回调函数)
时间:slow(600ms) normal(400ms)fast(200ms)
jquery.easing:引入扩展文件,添加动画效果曲线

2、滑动、卷动
slideUp():向上卷
slideDown():向下卷
slideToggle():上下切换
参数同上

3、淡入、淡出
fadeIn():淡入
fadeOut():淡出
fadeToggle():出入切换
参数同上

fadeTo():淡入淡出
如果本身透明度大于指定值时淡出
如果本身透明度大于指定值时淡入
参数:(时间,0 – 1)

4、自定义动画
animate()
参数:(对象,时间,曲线,回调函数)
例如:

$('#box').click(function(){
    $(this).animate({
        'width':300,
        'height':"+=100px"
    },100,ease-in,function(){
        alert("hello")
    })
})

实现位移动画
必须先设置 css 绝对定位

5、停止动画
stop()
参数(true,true) // false
是否清空未执行完的动画列队,是否跳转到结束状态。

6、延时动画
delay()
参数(时间)
例如:

$('#box').click(function(){
    $(this).animate({
        'width':300,
        'height':"+=100px"
    },1000).delay(3000).animate({
        'width':200,
        'height':"-=100px"
    },2000)
})

选中正在执行动画的元素
xx:animated

JQ数据操作

字符串操作
$.trim():去掉字符串两边的空格

var str = ' jquery ';
alert(str);
alert($.trim(str));

数组对象操作
$.each():遍历

var array = ['hello','jq','js'];
$.each(array,function(index,element){
    alert(index);
    alert(element);
})
或:
$(array).each(function(index,element){ });

$.grep():数据筛选

var arr = [5,2,9,4,11,57,89,8];
arrGrep = $.grep(arr,function(index,element){
    return element<6 && index<5;    
});
alert(arrGrep);
$.map():修改数据
$.inArray():获取查找到元素的下标,从0开始
$.merge():合并两个数组
$.unique():删除重复的 DOM 元素
.toArray():合并多个 DOM 元素为数组

测试工具函数

$.isArray(obj):判断是否为数组对象
$.isFunction(obj):判断是否为函数
$.isEmptyObject(obj):判断是否为空对象
$.isPlainObject(obj):判断是否为纯粹对象
$.contains(obj):判断 DOM 节点是否含另一个 DOM 节点
$.type(data):判断数据类型
$.isNumeric(data):判断数据是否为数值
$.isWindow(data):判断数据是否为 window 对象

URL操作
$.param()
将对象的键值对转化为 URL 字符串键值对

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值