jQuery基础 浅析(含基本方法和选择器)
1.jQuery与DOM互相转换
jQuery入库函数:$(document).ready(function(){})
$(function(){})
$(“#btn”):jQuery存储的是DOM对象,相当于数组可以通过[ ]取出具有相同标记的DOM对象
jQuery对象转换为DOM对象:$(“#btn”)[0] 或者 $(“#btn”).get(0),0表示索引号
var btn=document.getElementById(“btn”);
DOM对象转换为jQuery对象:$(btn)
2.jQuery选择器
① 基本选择器
(1) 标签选择器
$(“li”).css(“background”,”pink”);
(2) Id选择器
$(“#id”).css(“fontSize”,”30px”);
(3) 类选择器
$(“.class”).css(“background”,”pink”);
(4)交集选择器
$(“li.class”).css(“background”,”pink”);给具有class类的li标签设置背景色
(5) 并集选择器
$(“li,div”).css(“background”,”pink”);同时给li和div标签设置背景色
② 层级选择器
(1)子代选择器
$(“#ulitem>li”). css(“background”,”pink”);选择指定父元素下面的指定子元素
$(“#ulitem>.class”). css(“background”,”pink”);
$(“.wrap>ul>li”). css(“background”,”pink”);
(2) 后代选择器
find(“li”)
$(“#Id(空格)li”). css(“background”,”pink”);选择指定祖先元素下面的后代元素包括子元素的子元素,都会被选上。可以跳级选择#Id>ul>li,可以选择到li
(3)过滤选择器
$(“li:odd”). css(“background”,”pink”);所有选择到的元素,索引号奇数选择器
$(“li:even”). css(“background”,”pink”);
所有选择到的元素,索引号偶数选择器
$(“li:eq(4)”). css(“fontSize”,”30px”);
所有选择到的元素,索引号相等选择器
$(“.class > li”).eq(4).
css(“fontSize”,”30px”); 索引号相等选择器,第二种方法
$("#Id>li:eq(“+ index
+”)”).show();index为动态改变索引号
3.jQuery操作演示
① 样式属性设置
(1) 同时设置多个样式
$(“li”).css(
{“background”:”pink” , ”fontSize”:”30px”
, “color”:”green”}
); 传入一个对象
或者
var cssStys = {“background”:”pink”
, ”fontSize”:”30px” , “color”:”green”}
$(“li”).(cssStys);
(2) 类名操作
a ) $(“div”).addClass(“box”)
添加两个类名xxx.className =
xxx.className + “box”;
$(“div”).addClass(“xxx.className”)
b ) $(“li”).removeClass(“box”)
, 如果不传入参数,会移除所有类名
② 动态创建元素
var aLink = $(‘<a href=”http://web.baidu.com”>百度</a>’);
$(“div”).append(aLink);
或者 $(“div”).append(‘<a href=”http://web.baidu.com”>百度</a>’);
append(#Id);如果追加的是已经有的元素,会从元素原来的位置移除元素追加到当前需要追加元素的位置
$(“div”).html(‘<a href=”http://web.baidu.com”>百度</a>’);清空原有元素,创建当前元素/内容
③ 获取宽高
var height = $(#Id).css(“height”);
height为string类型,值为如:200px
计算宽高:parseInt(height);
或者$(#Id).height();直接获取数值类型高度
4
jQuery的事件对象
$(“div”).on(“click” , “input”
, function( event
){
event.delegateTarget 表示:代理绑定事件的元素 ----->div
event.currentTarget 表示:绑定事件的元素 ----->input
event.target 表示:触发事件的元素,点击谁---->谁
})
event.data 传递给事件处理程序的额外数据
event.currentTarget 等同于this
event.pageX 鼠标相对于页面左边的位置
event.target 触发事件源,不一定===this
event.stopPropagation(); 阻止事件冒泡
event.preventDefault(); 阻止默认行为
event.type 事件类型:click,dbclick…
event.which 鼠标的按键类型:左1 中2 右3
event.keyCode 键盘按键代码
return false; // 同时具有阻止冒泡和阻止默认行为的功能
this:哪个元素触发的事件,this就指向这个元素。
5
隐式迭代
设置操作
$(“div”).css(“color” , “red”);
给所有的div设置背景色为红色,自动进行循环遍历设置,不用再添加循环。
$(“div”).css(“color”);
获取属性时,只返回第一个div元素的背景色,相当于索引为[0],如果第一个元素没有这个属性,返回undefined
6链式编程
$(#Id).children(“ul”).children(“li”).css(“opacity”,0.5);
$(#Id).parent(“li”).siblings(“li”).children(“div”).css(“opacity”,0.5);
实现原理:通过构造函数创建对象,同时return this;
构造函数:function person (){
this.name = “Tom”;
this.age = 18;
this.sayHello = function(){
console.log(this.name);
return
this;}
this.addAge = function(){
this.age++;
console.log(this.age)
return
this;}
}
创建对象: var person = new person(
);
调用person.sayHello().addAge();实现链式编程
end():结束当前链最近的一次过滤操作,恢复链式编程被修改之前的一个状态
$(“div > ul”).text().prevAll(“li”).text().end() 此时返回的this为”ul”
7.jQuery 基本方法
parent():父元素选择 |
children():子元素选择 |
mouseenter():鼠标进入 |
parents():祖先元素选择 |
next():获取紧挨下一个元素 |
mouseleave():鼠标离开 |
css(“fontSize”):获取样式 |
siblings():获取兄弟元素 |
css(“attr”,value):改变style |
find(“li”):选择指定后代元素 注释:find()括号中必须传入元素 |
focus():获取焦点 |
|
blur():失去焦点 |
dbclick():双击事件 |
change():改变事件 |
keydown():键盘按下事件 |
click():单击事件 |
addClass(“class”):添加类名 |
removeClass():移除类名 |
hasClass():判断是否有类名 |
toggleClass()[1]:判断是否有类名,有就移除没有就添加 |
fadeIn():淡入动画 |
index():获取元素索引号 |
|
show(num): 展示动画 |
slideDown():划入动画效果 |
fadeout():淡出动画 |
hide(num):隐藏动画 |
slideUp():划出动画效果 |
fadeTo(200,0.5):淡到动画 |
fadeToggle():似toggleClass() |
slideToggle():似toggleClass() |
animate():自定义动画 |
stop():停止动画 |
append():在后面追加元素 |
empty():清空元素 |
html(“”):清空元素 |
element.appendTo(node): element元素往node元素中添加 |
prepend():向前添加元素 |
|
remove():移除元素 |
clone():复制元素,返回一个jQuery对象 |
after():在当前元素后面添加 |
before():在当前元素前添加 |
attr():获取、设置属性 |
html():获取html |
text():获取纯文本内容 |
val():获取文本值 |
stopPropagation():阻止冒泡 |
preventDefault():阻止默认行为 |
height():获取高度,数值型 |
width():获取宽度,数值型 |
scrollTop():被卷去头部 |
scrollLeft():被卷去左部 |
||
prop():设置属性,主要应用设置checked,selected,disabled,等动态改变的属性,用法与attr()相同 |
|||
offset({top:100,left:100}):获取、设置相对页面左上角位置,获取设置结果为对象如{top:100,left:100} 如果元素有定位,不设置定位,如果没有定位,会被设置position:relative |
|||
bind({“click mouseenter”,function(){}})[2]:可同时绑定多个事件,不能给动态创建元素绑定事件 |
|||
$(“ul”).delegate(“li” , ”click” , function() {alert(“事件绑定”)}): 给动态创建元素绑定事件,机理:给父元素绑定事件,子元素可以触发事件,事件冒泡机制。 |
|||
on()[3]:即可给原本存在元素绑定事件,也可给动态创建元素绑定事件,zepto手机端通用 |
|||
unbind():解除bind()绑定事件,不常用 |
undelegate():解除delegate()绑定事件,不常用 |
||
off(“click”):解除绑定事件,全部都解除 |
off(“click” , “**”):解除动态绑定事件,自身绑定事件还存在 |
||
trigger(“focus”):触发事件,即触发已经绑定的事件,会触发浏览器的默认行为 |
|||
triggerHander(“focus”):触发事件,即触发已经绑定的事件,不会触发浏览器的默认行为 |
|||
prevAll():获取指定元素之前的所有元素 |
nextAll():获取指定元素之后的所有元素 |
||
end():结束当前链最近的一次过滤操作,恢复链式编程被修改之前的一个状态 |
|||
each(function(index,ele){})[4]:循环设置每个元素,包含index,ele两个参数 |
8.jQuery属性
① length属性解析
.length :获取匹配元素的个数,不是方法是jQuery属性
$(#Id).find(“:checkbox”).length,表示所有type = checkbox的input的个数
② jQuery多库共存
$.noConflict(): 让jQuery释放对$的控制,$.noConflict():需要放到最上部
释放$后调用jQuery------
jQuery(function(){
jQuery(“btn”).click(function(){
alert(123)
})
})
或者var j = $.noConflict(); 之后使用j j(function(){ })
③ jQuery插件制作
$.fn.changeBg = function(){ }
changeBg为函数名,$.fn.changeBg 为固定写法
9.jQuery方法可行特性分析
① 鼠标触碰排他事件:
$(“.class > li”).mouseenter(function(){
$(this).addClass(“className”).siblings(“li”).removeClass(“className”)
})
② show()动画效果
Show(400) = show(“normal”)
Show(200) = show(“fast”)
Show(600) = show(“slow”)
Show (2000 , function () {
alert(“动画执行完后,立即执行的回调函数”);
})
③ animate()自定义动画实现只能改变单一数值属性 font,backgruond等效果无法实现
$(“btn”).click(function(){
$(“div”).animate(
{“width”:”200px”
, “height”:”200px” , “opacity”:0.4} , 2000 , function(){
alert(“执行自定义动画”)
})
})
④ 通过选择器获取对象
$(#Id).find(“:checkbox”).length $(#Id).find(“:checkbox: checked”).length
$(#Id).find(“:checked”).length
⑤ 键盘按下事件on(“keydown”)
$(document).on(“keydown” ,
function(event){
var
keyCode = event.keyCode;
$(“#Id”).text(keyCode);
switch(keyCode){
case
82:
$(“#Id”).css(“background” , ”red”);
Break;
case
71:
$(“#Id”).css(“background” , ”green”);
Break;
}
})
注释:
[1] toggleClass(“div”)实现原理:
if($(“div”).hasClass(“box”))
{
$(“div”).removeClass(“box”);
} else {
$(“div”).addClass(“box”);
}
[2] bind({ })实现:
①$(#Id).bind ( {
“click” : function(){
alert(“被点击了”) },
“mouseenter” : function(){“鼠标进入了”}
})
②$(#Id).bind (
“click mouseenter”,function(){
i++;
alert( i );
}) alert(1) , alert(2)
[3]
给原本存在元素绑定事件:
$(#Id).on(
“click mouseenter”,function(){
i++;
alert( i );}))
给动态创建元素绑定事件:
$(“ul”).on( “click” , ”li” , function(){alert(“事件绑定”) } )
[4]
each()方法使用,例:给10给li设置透明度
$(“li”).each(function(index,ele){
index表示当前元素的索引号
ele表示当前元素
var p = (index + 1)/10;
$(ele).css(“opacity” , p)
})
jQuery基础 浅析(含基本方法和选择器)的更多相关文章
- jQuery基础学习5——JavaScript方法获取页面中的元素
给网页中的所有<p>元素添加onclick事件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...
- Web前端学习笔记之jQuery基础
0x0 jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Aja ...
- jQuery基础之选择器
摘自:http://www.cnblogs.com/webmoon/p/3169360.html jQuery基础之选择器 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Aja ...
- jQuery基础---常规选择器
内容摘要: 1.简单选择器 2.进阶选择器 3.高级选择器 发文不易,转载请注明出处! jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元素的标签名.属性名. ...
- jQuery基础(DOM篇,append(),after(),prepend(),insertAfter(),节点删除,遍历方法each())
1.DOM创建节点及节点属性 创建流程比较简单,大体如下: - 创建节点(常见的:元素.属性和文本) - 添加节点的一些属性 - 加入到文档中 流程中涉及的一点方法: - 创建元素:d ...
- jQuery基础--选择器
2. 选择器 2.1. 什么是jQuery选择器 jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素.注意:jQuery选择器返回的是jQuery对象. jQue ...
- webform(九)——JQuery基础(选择器、事件、DOM操作)
JQuery -- 一个js函数包 一.选择器 1.基本选择器 ①id选择器:# ②class选择器:. ③标签名选择:标签名 ④并列选择:用,隔开 ⑤后代选 ...
- Jquery | 基础 | 慕课网 | 层级选择器
选择器中的层级选择器处理关系类型: 子元素 后代元素 兄弟元素 相邻元素 <!DOCTYPE html> <html> <head> <meta http-e ...
- jquery基础知识汇总
jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...
随机推荐
- SQL Server中Table字典数据的查询SQL示例代码
SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...
- Dtree 添加 checkbox 复选框 可以默认选中
一:目标 要实现用一个树形结构的展示数据,每个节点(除了根节点)前有一个checkbox,同时,点击父节点,则子节点全选或者全不选,当选中了全部子节点,父节点选中:如下图所示: 同时可以在创建的时候, ...
- BZOJ3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(dp)
题意 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有K( ...
- 判断IP连接数前五,并自动加入防火墙
#!/bin/bash #Author Template #Time -- : log_file=/tmp/tmp.log JudgeExt(){ if expr "$1" : & ...
- L2TP用户添加和删除、搜索脚本
#!/bin/bash #author Template . /etc/init.d/functions DATE_TIME=$(date +%F-%T) FILE_PATH='/etc/ppp/ch ...
- url地址形式的传参格式拼接
例子一: var gid=pid=pizi=sn=newsn=sn_price=city_id=123; var params = 'gid=' +123; params += '&pid=' ...
- OpenCV学习笔记(七) 图像金字塔 阈值 边界
转自: OpenCV 教程 使用 图像金字塔 进行缩放 图像金字塔是视觉运用中广泛采用的一项技术.一个图像金字塔是一系列图像的集合 - 所有图像来源于同一张原始图像 - 通过梯次向下采样获得,直到达到 ...
- synchronized 基本用法
常见三种使用方式 1)普通同步方法,锁是当前实例:2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁:3)对于同步代码块,锁是synchronized括号里配 ...
- day21&22&23:线程、进程、协程
1.程序工作原理 进程的限制:每一个时刻只能有一个线程来工作.多进程的优点:同时利用多个cpu,能够同时进行多个操作.缺点:对内存消耗比较高当进程数多于cpu数量的时候会导致不能被调用,进程不是越多越 ...
- Python 命令总结
本章内容 pip pip install -r requirement.py(里面写入需要安装的包的名字) pip install django==1.9 #需要安装那个版本 P ...