jquery 基础知识 持续更新中。。。。

Jquery重点内容
 
重点:Jquery使用和Jquery的选择器
 
第一个难点:Jquery对象和DOM对象互转
 
1.  问:为什么Jquery对象和DOM对象要互转
DOM对象转Jquery对象操作方便 互转 ,毕竟Jquery中方法都是封装好了的,而且兼容问题解决的很好,代码少,方便.
Jquery对象转DOM对象,因为Jquery中文件一直在更新,很多东西都是随着使用而进行封装和升级,不太可能把所有dom中
用到的进行封装,还有很多未知的兼容问题没有封装进去,所以,有的时候jquery中不能解决的问题,还需要原生的js代码来解决,
所以,jquery对象有的时候需要转成dom对象来进行操作。
$( ).get(0);              $( )[ 0 ];     //转为DoM
 
 
2. JQuery选择器(重点):
$(“#btn”),  ID选择器
$(“div”),     标签选择器
$(“.cls”)  类选择器
$(“*”)           选择所有的标签
$(“标签 + 类样式名”)      标签+类样式选择器
$(“标签,标签,标签。。。”)          多条件选择器

$(“#dv li”)或者$(“ul li”)或者$(“.cls li”)     层次选择器:后代选择器(子元素中元素,子,仔仔,孙)
$(“#ul>li”)或者$(“div >span”)或者$(“.cls >li”)    子代选择器(直接的所有子元素,儿子)
获取当前元素的相邻元素       $(“div + span”)
获取当前元素后面所有元素    $(“div ~ span”)
 
常见的选择器,(可以理解成是过滤器)
:even偶数 选择器
:odd奇数 选择器
 
索引选择器
eq(3)获取索引的元素
gt(3)索引大于3的所有元素
lt(3)索引小于3的所有的元
 
链式编程
多行代码合并成一行代码,前提要认清此行代码返回
的是不是对象.是对象才能进行链式编程
 
Jquery操作类样式
addClass();                 参数:类样式名字,添加样式的同时不会干掉原有的样式
removeClass();           不写参数移除所有的类样式
removeClass(“cls“);    移除指定的一个类样式
 
css样式与jquery样式比较总结
/*
  *
  * .css()
  * .css("属性","属性值");
  * .css("属性","属性值").css("属性","属性值");
  * .css({"属性":"属性值","属性":"属性值"});
  * addClass()
  * addClass("类样式名字");添加一个类样式
  * addClass("类样式名字1 类样式名字2");
  * removeClass()
  * removeClass("类样式名字");移除类样式
  * removeClass();移除的是当前元素中所有的类样式
  * hasClass();判断当前元素是否应用了某个类样式
  * toggleClass();切换元素的类样式的
  *
  *
  *
  * */ 
 
 
 
获得兄弟元素的几个方法
next();         //当前元素之后的紧邻着的第一个兄弟元素(下一个)
nextAll();     //当前元素之后的所有兄弟元素
prev();         //当前元素之前的紧邻着的兄弟元素(上一个)
prevAll();     //当前元素之前的所有兄弟元素
siblings();    //当前元素的所有兄弟元素
 
 
 
jQuery动画
 
hide()方法: show()方法:
参数:可以是一个number类型,也可以是字符串类型
参数2:可以加上一个函数,在动画执行结束后执行
 
$("div").slideUp(1000);                       //滑入
$("div").slideDown(1000);                  //滑出
$("div").slideToggle(1000);                //切换滑入滑出
$("div").fadeIn(1000);                        //淡入
$("div").fadeOut(1000);                     //淡出
$("div").fadeToggle(1000);                //切换淡入淡出
 
animate方法
第一个参数:键值对,(数值的属性可以改,颜色不能改)
第二个参数:动画的时间
第三个参数:回调函数
 
stop()停止动画
 
jQuery中创建元素及追加元素
 
追加元素的方法
append( )方法用来在元素的末尾追加元素(最后一个子节点)。增加元素末尾(儿子)
appendTo( 父元素)  找到父元素,把新的元素添加到末尾
prepend( ),在元素的开始添加元素(第一个子节点)。增加元素开始(儿子)
prependTo( 父元素)  找到父元素,把新的元素添加到开头
after( ),在元素之后添加元素(添加兄弟)增加元素后面(兄弟)  ; 可以直接用兄弟元素调用,不需要父元素
before( ), 在元素之前添加元素(添加兄弟)增加元素前面(兄弟) ; 可以直接用兄弟元素调用,不需要父元素
 
创建元素的方式:
.html    方法可以创建元素
$("div").html("<a href='http://www.baidu.com'>百度</a>");
$(“html标签”)   可以创建元素       
$('<a href="http://www.baidu.com">百度</a>');
 
清除元素:
$("div").html("");//清空层中内容
$("div").empty();//清空层中的内容
$("div").remove();//干掉自己
clone( true/false )方法,克隆标签内容 
{       不管深克隆还是浅克隆都包含元素,深克隆包含事件;           }
{  js原生:cloneNode(),不管是深克隆还是浅克隆都不能添加事件;}
     
 
 复习
/*
  * 复习:
  *
  * 选择器:
  * id选择器 $("#id属性的值")
  * 标签选择器 $("标签名字")
  * 类选择器 $(".类样式的名字")
  * 交集选择器 $("标签.类样式的名字")---->标签+类选择器
  * 并集选择器 $("选择器,选择器,选择器,...")---->多条件选择器
  * 都可以看成是筛选器
  * 索引选择器 $("选择器:eq(索引的值)")
  * 奇数筛选器 $("选择器:odd")
  * 偶数筛选器 $("选择器:even")
  * 筛选器 $("选择器:lt(索引)")--->获取小于这个索引的元素
  * $("选择器:gt(索引)")--->获取大于这个索引的元素
  * 其他选择器
  * $("选择器:last")---->最后一个
  * $("选择器:first")---->第一个
  * 获取当前元素的其他的方法
  * 当前元素.next()---->下一个兄弟元素
  * 当前元素.nextAll()--->后面所有的兄弟元素
  * 当前元素.prev()---->前一个兄弟元素
  * 当前元素.prevAll()-->前面所有的兄弟元素
  * 当前元素.siblings()-->所有的兄弟元素(没有自己)
  * 当前元素.parent()--->父级元素
  * 当前元素.children()--->当前元素中所有的子元素(直接的子元素)
  * 当前元素.find("选择器")--->从当前元素中找某个或者是某些元素
  *
  * 方法:
  * .val()---->操作表单元素的value属性,可以获取也可以设置
  * .text()---->操作元素中间的文本内容的,相当于innerText
  * .html()---->操作元素中的html代码及内容,相当于innerHTML
  * .css()----->操作元素的样式
  * .addClass()--->添加类样式
  * .removeClass()-->移除类样式
  * .hasClass()---判断元素是否应用了类样式
  * .index()---->元素的索引
  *
  *
  * 下面的这些动画的方法,一般都可以使用两个参数,参数1:时间,参数2:回调函数
  * 参数---时间:1000毫秒---1秒
  * 参数---时间:slow---慢,normal---正常,fast---快
  * .show()--->显示
  * .hide()--->隐藏
  * .stop()---->停止动画
  * animate()--->动画的方法
  * slideUp()---->滑入
  * slideDown()--->滑出
  * slideToggle()--->切换滑入和滑出
  * fadeIn()---->淡入
  * fadeOut()--->淡出
  * fadeToggle()--->切换淡入淡出
  * fadeTo(时间,透明度的值)
  *
  * 元素创建:
  * $("html的代码")
  * 元素的添加
  * 父级元素.append(子级元素);
  * 子级元素.appendTo(父级元素);
  *
  * clone()克隆元素
  * 父级元素2.append($("父级元素1>子级元素"));,相当于剪切过去的
  *
 

 

jQuery操作属性

attr操作(主要针对自定义属性操作,不适合操作选中)

// 第一个参数:需要设置的属性名
// 第二个参数:对应的属性值

设置单个属性

$('img').attr('title','哎哟,不错哦');
 
设置多个属性

$('img').attr({
title:'哎哟,不错哦',
alt:'哎哟,不错哦',
style:'opacity:.5'
});

获取属性
var oTitle = $('img').attr('title');
移除属性
$('img').removeAttr('title');
 

prop操作

在jQuery1.6之后,对于checked、selected、disabled这类boolean类型的属性来说,不能用attr方法,只能用prop方法。(用attr会返回undefinded)

// 设置属性
$(':checked').prop('checked',true);
// 获取属性
$(':checked').prop('checked');         // 返回true或者false

 

val()/text/()html()

$obj.val( )     获取或者设置表单元素的value属性的值
$obj.html( )   对应innerHTML
$obj.text( )    对应innerText/textContent,处理了浏览器的兼容性

 

jQuery尺寸和位置操作

width方法与height方法

1.设置或者获取高度,不包括内边距、边框和外边距

// 带参数表示设置高度
$('img').height(200);
// 不带参数获取高度
$('img').height();

2.获取网页的可视区宽高

// 获取可视区宽度
$(window).width();
// 获取可视区高度
$(window).height();

scrollTop与scrollLeft

// 获取页面被卷曲的高度
$(window).scrollTop();
// 获取页面被卷曲的宽度
$(window).scrollLeft();

 

offset方法与position方法

offset方法获取元素距离document的位置,position方法获取的是元素距离有定位的父元素(offsetParent)的位置。

// 获取元素距离document的位置,返回值为对象:{left:100, top:100}
$(selector).offset();
// 获取相对于其最近的有定位的父元素的位置。
$(selector).position();

 

innerWidth/innerHeight/outerWidth/outerHeight

innerWidth()/innerHeight() 方法返回元素的宽度/高度(包括内边距)。
outerWidth()/outerHeight() 方法返回元素的宽度/高度(包括内边距和边框)。
outerWidth(true)/outerHeight(true) 方法返回元素的宽度/高度(包括内边距、边框和外边距)。

 

元素绑定事件

 

//为元素绑定事件三种方式
  /*
  * 对象.事件名字(事件处理函数);---$("#btn").click(function(){});
  * 对象.bind("事件名字",事件处理函数);---$("#btn").bind("click",function(){});
  * 父级对象.delegate("子级元素","事件名字",事件处理函数);---->$("#dv").delegate("p","click",function(){});
  *
   

 

 

delegate注册委托事件(无论先后添加事件都可以绑定)

// 第一个参数:selector,要绑定事件的元素
// 第二个参数:事件类型on注册事件委托
// 第三个参数:事件处理函数
$('.parentBox').delegate('p', 'click', function(){
// 为 .parentBox下面的所有的p标签绑定事件
});

on注册事件(重点)

on注册简单事件

// 表示给$(selector)绑定事件,并且由自己触发,不支持动态绑定。
$(selector).on( 'click', function() {});

on注册事件委托

// 表示给$(selector)绑定代理事件,当必须是它的内部元素span才能触发这个事件,支持动态绑定
$(selector).on( 'click','span', function() {});

on注册事件的语法:

// 第一个参数:events,绑定事件的名称可以是由空格分隔的多个事件(标准事件或者自定义事件)
// 第二个参数:selector, 执行事件的后代元素(可选),如果没有后代元素,那么事件将有自己执行。
// 第三个参数:data,传递给处理函数的数据,事件触发的时候通过event.data来使用(不常使用)
// 第四个参数:handler,事件处理函数
$(selector).on(events,[selector],[data],handler);

 

事件解绑

 unbind()与undelegate()都不用,用off()

// 解绑匹配元素的所有事件
$(selector).off();
// 解绑匹配元素的所有click事件
$(selector).off('click',‘标签’);

// 解绑匹配元素的字标签的所有click事件
$(selector).off('click',‘标签’);

 

触发事件

$(selector).click(); // 触发 click事件    对象。事件名
$(selector).trigger('click');

 

jQuery事件对象

// screenX和screenY 对应屏幕最左上角的值
// clientX和clientY 距离页面左上角的位置(忽视滚动条)
// pageX和pageY 距离页面最顶部的左上角的位置(会计算滚动条的距离)

// event.keyCode 按下的键盘代码
// event.data 存储绑定事件时传递的附加数据

// event.stopPropagation() 阻止事件冒泡行为
// event.preventDefault() 阻止浏览器默认行为
// return false:既能阻止事件冒泡,又能阻止浏览器默认行为。

each方法

 作用:遍历jQuery对象集合,为每个匹配的元素执行一个函数

// 参数一表示当前元素在所有匹配元素中的索引号
// 参数二表示当前元素(DOM对象)
$(selector).each(function(index,element){});

多库共存

jQuery使用$作为标示符,但是如果与其他框架中的$冲突时,jQuery可以释放$符的控制权

 var c = $.noConflict();// 释放$的控制权,并且把$的能力给了c

 

 事件参数对象的几个属性

//    e.target这个属性得到的是触发该事件的目标对象,此时是一个DOM对象

//    e.currentTarget这个属性得到的是触发该事件的当前的对象

//    e.delegateTarget这个属性得到的是代理的这个对象
 
JQuery UI使用
 
 
 
 
 
 
 
 
 
posted @ 2019-06-21 12:18  Brandon_X  阅读(237)  评论(0)    收藏  举报