jQuery高级

jQuery基础方法扩充:
get():下标和length属性(把jQuery转成原生js)

$('#div1').get(0).innerHTML

显示的是第一个div1的内容
若get()没有数字,则是一组元素(length同时属于jQuery)
get(i)=[i]
outerWidth():针对(可以获取)隐藏元素和参数true
offsetWidth:获取不到隐藏元素的宽度
text():合体的特例(能获取到所以的内容(不包含标签)会将标签转化成文本)
与html(只能获取第一个元素(包括标签))类似
remove():删除元素,同时删除元素的操作行为
detach():删除元素,同时保留元素的操作行为
$()等DOM加载完就开始执行:$(document).ready() 写法意思相同
window.onload = function(){}等全部页面加载完才开始执行
$()下的常用方法
parents():获取当前元素的所有的祖先节点,参数就是筛选功能,可以指定参数
closest():获取最近的指定的祖先节点(包括当前元素自身),只能找到一个元素
siblings():获取所有的兄弟节点,有筛选的功能
nextAll():下面的所有兄弟节点
prevAll():之前的所有的兄弟节点
parentsUntil():之前的所有的祖先节点
nextUntil():从一个节点截止到另(下)一个节点
prevUntil():从一个节点截止到另(上)一个节点
clone(true):可以接受一个参数,作用是复制之前的操作行为
wrap():单独外部包装,在节点外再加上一个节点
wrapAll():整体外部包装,会改变DOM节点方式
wrapInner():内部包装
unwrap():删除包装(删除父级(不包括body))
add():可以变成多个节点
slice(起始位置,结束位置):在一组元素中筛选
serialize():将数据的value变成数组串联到一起形成字符串,传给后台
serializeArray():

<form>
    <input type="text" name="a" value="1">
    <input type="text" name="b" value="2">
    <input type="text" name="c" value="3">
</form>

格式化后变成:

[
    { name : 'a' , value : '1' },
    { name : 'b' , value : '2' },
    { name : 'c' , value : '3' }
]

animate():类似json
第一个参数:{}运动的值和属性
第二个参数:时间(运动快慢)
第三个参数:运动形式 | 只有两种运动形式(默认:swing(慢快慢)linear(匀速))
第四个参数:回调函数,做完运动开始执行函数

$(this).animate({width:300,height:300}, 400, 'swing', function(){});

这个物体的长跟宽变成300,历经时间为400毫秒,用缓冲的速度
也可以$(this).animate().animate()

stop()只能阻止当前运动stop(true)阻止后续运动stop(true,true)立即停止到指定目标点finish()立即停止到所有指定目标点

delay()延迟
delegate()委托 undelegate()
普通写法:

$('li').on('click',function(){
    this.style.background = 'red';
})

委托写法:(点击事件在ul操作,提高性能)

$('ul').delegate('li','click',function(){
    this.style.background = 'red';

    $('ul').undelegate();//取消事件委托
})

两者的表达意思相同

trigger()
主动触发事件

$('#div1').on('click',function(){
    alert(123);
})
$('#div1').trigger('click');

当网页刷新的时候就能弹出弹窗

ev.data ev.target() ev.type()

$('#div1').on('click',{name:'hello'},function(ev){
    alert(ev.data.name);//点击时弹出hello
    alert(ev.target);//弹出当前操作的事情
    alert(ev.type);//弹出当前事件的类型
})

$下的常用方法
type():$.type()类似于typeof,用于判断类型
以下两者弹出类型相同,jQuery的判断类型更多

$(function(){
    var a = 'hello';
    alert(typeof a);
    alert($.type(a));
})

trim():去前后空格,否则要用正则
inArray():类似于indexOf

$(function(){
    var arr = ['a','b','c'];
    alert($.inArray('b',arr));
})

返回出‘b’在字符串arr中的位置,若不存在就返回-1

proxy():改变this指向

$(function(){
    function show(){
        alert(this);//this指的是window
    }

    $.proxy(show,document)();
})

最后一句加上括号才表示show函数的调用,this的指向变成document,传参不仅可以在最后的()内,可以在document后面(在进行操作后才会执行),用‘,’隔开,也可以混着写;

noConflict():防止冲突,替代
parseJSON():解析成json

$(function(){
    var str = '{"name":"hello"}';
    alert($.parseJSON( str ));//弹出结果为object  object
    alert($.parseJSON( str ).name);//弹出结果为hello
})

makeArray():一组元素(类数组(‘aDiv’))转换成数组

$下的常用方法
Ajax():json形式的配置参数
url后台地址 success当成功的时候运行
error当失败的时候运行 contentType
data数据 type类型
datatype返回数据类型 cache是否缓存 timeout是否延迟
在Ajax中要写成json的形式

$.ajax({
    url : 'xxx.php',
    data : 'name=hello&&age=20',
    type : 'POST',
    success : function(){
        alert(1);
    }
    error : function(){
        alert(2);
    }
});

抽象出来的方法
get(‘地址’,{name:hello},function())
$.get()ajax的get提交方式,一种简写的方式

$().get()把jQuery对象转换成JavaScript原生对象

post()
getJSON():请求json类型
支持jsonp的形式:指定?callback=?

$.getJSON('xxx.php?callback=?',function(){
});
相当于:随机的名称({});

插件
$.extend:扩展工具方法下的插件形式 $.xxx() $.yyy()

$.fn.extend:扩展到JQ对象下的插件形式 $().xxx() $().yyy()
去掉做空格的插件:

<script type="text/javascript">
    $.extend({
        leftTrim : function(){
            return str.replace(/^\s+/,'');
        }
    })
</script>
<script type="text/javascript">
    var str = '  hello  ';
    alert('(' + $.leftTrim(str) + ')');
</script>

拖拽插件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style type="text/css">
    #div1 {
        width: 100px;
        height: 100px;
        background: red;
        position: absolute;
    }
</style>
<script type="text/javascript" src="jquery-1.10.1.min.js"></script>
<script type="text/javascript">
    $.fn.extend({
        drag : function(){
            var disX = 0;
            var disY =0;

            var This = this;

            this.mousedown(function(ev){

                disX = ev.pageX - $(this).offset().left;
                disY = ev.pageY - $(this).offset().top;

                $(document).mousemove(function(ev){

                    This.css('left', ev.pageX - disX);
                    This.css('top', ev.pageY - disY);
                });

                $(document).mouseup(function(){
                    $(this).off();
                });

                return false;
            });
        },
    })
</script>
<script type="text/javascript">
    $(function(){
        $('#div1').drag();
    })
</script>
</head>
<body>
    <div id="div1"></div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值