JQuery部分方法总结

一、jq选择网页元素:不需要用循环,所有的操作都是批量操作
二、jq独有的表达式:

  $  是一个function的名字
  $  就是一个构造函数
  $() 相当于 调用  new JQuery();

【注】构造函数可以封装大型的JS库。

选择元素:

$("div:first")第一个
$("div:last")最后一个
$("div:even")下标为奇数的
$("div:odd")下标为偶数的
$("div:eq(2)")下标为2的
$("div[name=hello]")通过属性

筛选方式:

$("div:eq(2)") = $("div").eq(2)
$("div").filter('[name=hello]')
$("div.box") = $("div").filter('.box')

方法函数化:
在jq中没有=赋值,只有函数传参

window.onload = function(){
    alert(1);
}
alert(2);
//先输出2 再加载页面,等页面全部加载完在输出1
在jq中替代window.onload的方法是
$(function(){
    alert(1);
})
alert(2);

jq中的事件绑定

$("div").click(function(){
                    this.style.backgroundColor = 'red';
                })
$("div").mouseover(function(){
        this.style.backgroundColor = "red";
})

链式操作

对同一个元素节点进行不同的事件绑定时,可以在一个事件绑定完成后加.拼接新的事件
$("div").css("backgroundColor", 'red').click(function(){
                    alert(1);
                }).mouseover(function(){
                    this.style.backgroundColor = 'blue';
                }).mouseout(function(){
                    this.style.backgroundColor = 'orange';
                })

取值赋值一体化

$("#div1").html("我是设置的内容"); //赋值
  alert($("#div1").html()) //取值
css方法专门用来去操作css样式

$("#div1").css("height", "300px")  //300px可以写成300 “300” “300px”

JQ和JS的关系
JS和JQ是可以共存,但是不能混用

JS的对象,如果想用JQ的方法,必须用$()调用一下
filter过滤,已经获取到的元素节点中过滤

$("div").filter(".box").css("backgroundColor", "red");
not 和filter是反义词
has拥有 筛选的是div节点,但是筛选条件是div中的子节点

$("div").has(".box").css("backgroundColor", "red");
filter,not,has都是筛选div

next()找到同级元素中的上一个节点
prev()找到同级元素中的下一个节点

(".box").next()
(".box").prev()

find 查找子节点
index()直接找出当前节点在兄弟节点中的下标

必须是ul下的li标签  $("ul").find("li")
$("ul").find("[name=hello]")
$("ul li")
index():
alert($(".box").index());
css函数
attr函数   操作行间的属性

获取行间样式

	alert($("div").attr("class"));	

设置行间样式:

$("div").attr("class", "xxx");

设置多个样式:

$("div").attr({
  title: "yyyy",
  class: "yyyyyy",
  xxxx: "zzz"
})

addClass
removeClass
【注】处理class的

$("div").addClass("box3 box4 box2");
$("div").removeClass("box2 box3");

<body>
    <div class = 'box1 box2'></div>
</body>

width

innerWidth() = width + padding
outerWidth() = width + padding + border
outerWidth(true) = width + padding + border + margin

节点操作

找到span节点,插入到div前面
$("span").insertBefore($("div"));   //span   
                                      div
找到div节点,插入到span后面          span   
                                    div
$("div").insertAfter("span");
找到span节点插入到div节点子节点的末尾
$("span").appendTo($("div"));  //div span
找到span节点插入到div节点子节点的首位 //span div
$("span").prependTo($("div"));
删除节点
$("span").remove();
找到span节点,插入到div前面
$("span").insertBefore($("div")).css("backgroundColor", 'red');
div前面是span
$("div").before($("span")).css("backgroundColor", 'red');
//变化颜色不同

<div>
     div1
     <em>em</em>
</div>
<span>span</span>

on绑定事件

使用on方法添加点击事件
1、传两个参数
                $("li").on("click", yellow);
2、传入两个参数
var i = 0;
                $("li").on("click mouseover", function(){
                    this.innerHTML = i++;
                })
3、给不同的事件,添加不同的函数
$("li").on({
                    click: function(){
                        alert("点击");
                    },
                    mouseover: function(){
                        this.style.backgroundColor = 'red';
                    },
                    mouseout: function(){
                        this.style.backgroundColor = 'blue';
                    }
                })
4、实现事件委托  第二参数 选择器
$("ul").on("click", "li,div", function(){
                    this.style.backgroundColor = 'red';
                })

one( )绑定事件只能触发一次
和on( )区别

$("ul").one("click", "li,div", function(){
    this.style.backgroundColor = 'red';
 })
一个节点触发一次one事件就不会再触发

off取消

取消click事件上的所有函数
$("li").off("click");
取消所有的事件
$("li").off();
取消某一个事件下的某一个函数
$("li").off("click", yellow);

滚动距离 scrollTop()

$(document).click(function(){
    alert($(window).scrollTop());
})
//点击的时候获取滚动过去的距离

jquery中的事件
jq是不需要去兼容的,所有方法都是兼容好的
which

将鼠标和键盘事件结合在一起
1.如果添加的是鼠标事件,返回点击鼠标对应的码,
   1 左键 2 滚轮 3 右键
2.keydown 事件 代表的是键码  keyCode
3、keypress事件 代表的是字符码charCode
阻止事件

preventDefault   阻止默认行为
stopPropagation  阻止事件冒泡
return false; //代表既阻止默认行为,又阻止事件冒泡
例如:
    $("a").click(function(ev){
        return false;
})

距离计算

​clientX   clientY  原点位置是可视窗口的左上角
pageX     pageY    带滚动距离
screenX   screenY  根据屏幕
offset( )和position( ),offsetParent( )

offset() 只计算可是元素可视大小距最左边的距离
position() 算元素所有的距离,包括margin,计算距第一个有定位的父级的距离。
offsetParent( )找第一个有定位的父元素,找不到就是html

细节函数

val() 取值赋值一体化
size()获取到的元素节点的个数
    $("li").size() = $("li").length
each()jq的遍历,遍历我们获取到的所有元素
    $("li").each(function(index,item){
        $(item).html(index);
})
//li标签的innerhtml是对应的下标

JQ的动画特效
1.运动:hover函数(移入和移出的动画)

hover(funOver,funout)
    $("div").hover(function(){
        this.innerHTML = "移入";
        //或者 $(this).html("移入");
    },function(){
        this.innerHTML = "移出";
        //或者$(this).html("移出");
    })
移入移出的动画特效

​可以传入参数,
第一个参数 毫秒数 动画持续的事件
第二个参数 回调函数 动画执行完毕以后执行的代码

(1)show() 显示
hide() 隐藏

(2)fadeIn() 淡入
fadeOut() 淡出 透明度发生变化 0-1
fadeTo() 方法将被选元素的不透明度逐渐地改变为指定的值。
(3)卷闸
slideDown()
slideUp()

$(function(){
    $("#div1").hover(function(){
        $("#div2").hide(2000, function(){
            $("#div1").html("动画移入完成")
         });
        }, function(){
            $("#div2").show(2000, function(){
            $("#div1").html("动画移出完成")
                });
        })
})

2:.animate( )
stop( )停止动画
delay( )延迟 延迟执行 参数传入毫秒数
animate( )
第一个参数 变化样式属性
第二个参数 动画持续的事件 不传入默认400毫秒
第三个参数 回调函数
提供了两种运动形式:swig 慢快慢(默认) linear(匀速)
在这里插入图片描述

stop( )停止动画  (例如滑出时结束滑入的动画并进行滑回的动作)
stop(true)关闭所有动画
stop(true,true)关闭所有动画,当前正在运动的动画直接到目的值
finish( )关闭所有的动画,将所有动画都到达目的值

在这里插入图片描述
链式运动:可以在一个animate后边再加一个animate

【js和jq可以共存 但是不能混用】
在这里插入图片描述
text() 获取元素节点中,包括子节点中的纯文本 innerText

alert($("div").html())只显示第一个div的内容
alert($("div").text())将所有div的内容都解析输出
get( )可以实现js与jquery的混用
$( ).get(下标).js代码

​alert($("div").get(1).innerHTML);
alert($("div")[1].innerHTML);
两种表达方式是一样的 
html不解析标签  直接输出
将div的text改成"<h1>h1</h1>"并输出
$("div").text("<h1>h1</h1>");

remove和detach和clone

remove()删除元素节点
返回值:就是删除的节点
detach()删除元素节点,但是可以保留该节点之前的行为
clone( )克隆节点本身,无法克隆节点的行为
clone(true)还能够克隆行为

在这里插入图片描述
ready 当文档加载完成后,才去执行
在这里插入图片描述
节点操作

parents( )获取当前节点所有的父亲节点,参数是筛选条件(css选择器的字符串)
closest( )获取当前节点的父节点,必须传入参数,获取第一个符合条件的父节点(包括本身)
siblings( )
获取,当前节点的同级兄弟节点,参数筛选条件
nextAll( )获取,当前节点的往下同级兄弟节点,参数筛选条件
prevAll()    获取,当前节点的往上同级兄弟节点,参数筛选条件
parentsUntil() 从当前节点开始,找所有的父节点,直到某个节点为止
nextUntil()  获取,当前节点的往下直到某一个节点为止所有同级兄弟节点,参数筛选条件
prevUntil()

对应的代码

$("#div3").parentsUntil("body").css("backgroundColor", 'red');
包装
wrap() wrapAll() wrapInner() unwrap()  了解

​$("span").wrap("<em>");
//整体打包
$("span").wrapAll("<em>");
// 内部包装
$("span").wrapInner("<em>");
//删除
$("span").unwrap("<div>");
删除所有span元素的div父元素:

数据串联

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

serialize()alert($("form").serialize());  
输出//a=1&b=2&c=3 (queryString格式)
?a=1&b=2&c=3(search格式)
{a:1,b:2,c:3} (query格式)

​serializeArray()  变成对象的格式[{ }{ }{ }]必须用在表单里

不同的节点要有相同的需求,可以用add拼接

$("div").add("em").add("li").css("backgroundColor", 'red');

slice( )选择

$("li").slice(1, 4).css("backgroundColor", 'red');
//[1,4)下标

添加自定义事件bind
(js中bind是改变this指向)

​$("button").bind("play", function(){
    alert("播放");
})

trigger主动触发某一事件类型上所有的函数

在input失去焦点时触发,且在button点击时也去触发input的事件
在这里插入图片描述
事件细节

​ev.data方法向被选元素附加数据,或者从被选元素获取数据。
ev.target(兼容后触发对象)
ev.type(输出事件类型)
$(document).mousedown(function(ev){
  alert(ev.type)
})
//mousedown
$(document).on("click", {name: "钢铁侠", sex: "男"}, function(ev){
    alert(ev.data);
    //[object Object]
    alert(ev.data.name)
    //钢铁侠
})

案例:拖拽且限制出界

1.声明offsetX和offsetY
var offsetX = 0;
var offsetY = 0;
2.给div添加鼠标按下事件
$("div").mousedown(function(ev){
    offsetX = ev.clientX - $(this).offset().left;
    offsetY = ev.clientY - $(this).offset().top;
3.在添加mousemove事件的时候是在document添加的,所以如果直接用this会指向document,应该加一步
var _this = this;
4.添加mousemove事件
    $(document).mousemove(function(ev){
5.限制出界
      var l = ev.clientX - offsetX;
      var t = ev.clientY - offsetY;
      if(l >= $(window).width() - $(_this).innerWidth()){
         l = $(window).width() - $(_this).innerWidth();
      }
      if(l <= 0){
         l = 0;
      }
      if(t >= $(window).height() - $(_this).innerHeight()){
          t = $(window).height() - $(_this).innerHeight();
       }
     if(t <= 0){
          t = 0;
      }
      $(_this).css({
         left: l,
         top: t
 })
})
})//mousemove是添加在mousedown中的
6.添加mouseup松开事件
      $(document).mouseup(function(){
          $(document).off("mousemove");
      //取消移动事件
      })
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值