网页编程----JQUERY

jQuery

一、jQuery 概述

1、为什么使用 jQuery(遇到的问题)
 选择器功能弱
 DOM操作繁琐之极
 浏览器兼容性不好
 动画效果弱
2、什么是 jQuery(概念)
jQuery (javaScriptQuery)JavaScript 代码库
官方网站:http://jquery.com/
3、目前 jQuery 有三个大版本:
1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能
不再新增。因此一般项目来说,使用1.x版本就可以了,最
终版本:1.12.4 (2016年5月20日)
2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功
能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,
最终版本:2.2.4 (2016年5月20日)
3.x:不兼容 ie678,只支持最新的浏览器。除非特殊要求,
一般不会使用 3.x 版本的,很多老的 jQuery 插件不支持这
个版本。目前该版本是官方主要更新维护的版本。最新版本:
3.2.1(2017 年 3 月 20 日)

二、jQuery 中$的含义

作用 1:$(function){}
1.相当于 window.οnlοad=function(){}
2.功能比window.onload更强大

  1. window onload一个页面只能写一个,但是可
    以写多个$() 而不冲突
  2. window onload要等整个页面加载完后再执
    行(包括图片、超链接、音视频等),
    但是 的 执 行 时 间 要 早 3. 完 整 形 式 是 的执行时间要早 3.完整形式是 3.(document).ready(…….);
    作用 2:$(selector)
    选择器
    jQuery具有强大的选择器功能
    其他作用后续用到再总结

三、选择器学习

对象之间的转换
DOM对象:直接使用JavaScript获取的节点对象
 className innerHTML value
 jQuery对象:使用jQuery选择器获取的节点对象,
它能够使用jQuery中的方法
 addClass() html() val()
 DOM对象和jQuery对象分别拥有一套独立的方法,不能混用
 DOM对象转换成jQuery对象
​ $(DOM对象)
 jQuery对象转换成DOM对象
​ jQuery对象[index]
​ jQuery对象.get(index)
基本选择器
 标签选择器 $(“a”)
 ID选择器 $(“#id”) $(“p#id”)
 类选择器 $(“.class”) $(“h2.class”)
 通配选择器 KaTeX parse error: Unexpected character: '' at position 7: ("*") ̲ 并集选择器(“elem1,elem2,elem3”)
 后代选择器 $(ul li)
 父子选择器 $(ul>li)
 后面第一个兄弟元素 prev + nex

 后面所有的兄弟元素 prev ~ next

//只是第一行变颜色
$(“ul li:first”).css(“background-color”,“red”);
$(“ul li”).first().css(“background-color”,“red”);
//最后一行变颜色
$(“ul li:last”).css(“background-color”,“green”);
$(“ul li”).last().css(“background-color”,“green”);
//获得索引是奇数对象 索引从0开始
$(“ul li:odd”).css(“background-color”,“green”);
//获得索引是偶数对象 索引从0开始
$(“ul li:even”).css(“background-color”,“green”);
//获得索引下标位3的对象
$(“ul li:eq(3)”).css(“background-color”,“green”);
//获得大于指定索引下标的对象
$(“ul li:gt(3)”).css(“background-color”,“green”);
//获得小于指定索引下标的对象
$(“ul li:lt(3)”).css(“background-color”,“green”);
/子选择器***********/

$(“ul li:nth-child(1)”).css(“background-color”,“green”);
$(“ul li:first-child”).css(“background-color”,“darkred”);
$(“ul li:last-child”).css(“background-color”,“darkred”);
$(“ul li:only-child”).css(“background-color”,"#00A40C");

//type属性等于text
$(“input[type=text]”).css(“background-color”,"#00A40C");
// name属性用z开头的
$(“input[name^=z]”).css(“background-color”,"#FF0000");
// name属性同d结尾的
( " i n p u t [ n a m e ("input[name ("input[name=d]").css(“background-color”,“green”);
//name属性中包含p 的元素
$(“input[name*=p]”).css(“background-color”,“green”);
//复合属性选择器,需要同时满足多个条件时使用
$(“input [type=text][name^=z]”).css(“background-color”,“deep
pink”);

// √ 获得form表单中的所有的表单项
var inp= ( " : i n p u t " ) / / 获 得 标 签 名 称 是 i n p u t 的 所 有 的 标 签 对 象 v a r i n p 2 = (":input") //获得标签名称是input 的所有的标签对象 var inp2= (":input")//inputvarinp2=(“input”);
alert(inp.length+"----"+inp2.length);
$(“input[type=text]”)
// √ input标签 type属性等于text所对应的对象
$(":text").css(“background-color”,“green”);
$(":password").css(“background-color”,“red”);
/表单属性选择器*****/
//获得input标签中含有disabled属性的对象
var but= ( " i n p u t : d i s a b l e d " ) ; a l e r t ( b u t . v a l ( ) ) ; / / √ 获 得 含 有 c h e c k e d 属 性 的 对 象 v a r c h = ("input:disabled"); alert(but.val()); //√ 获得含有checked属性的对象 var ch = ("input:disabled");alert(but.val());//checkedvarch=(“input:checked”);

四、操作页面的样式

//获得div对象
var div =$("#div1");
//获得css样式
var wid=div.css("width");
var hi=div.css("height");
console.log(wid+"----"+hi);
//操作元素对象的css
div.css("width","400px");
div.css("height","500px");
div.css("background-color","red");
div.css("backgroundColor","red");
//以上内容的综合---{key1:value1,key2:value2}---json
数据格式
div.css({'width':'300px','height':'300px','backgrou
nd-color':'red'});

如果当页面中的css样式比较多的时候可以通过添加类的方
式添加样式,方法如下:两种
$("#bu1").click(function(){
//获得div对象 --通过添加类的方式添加css样式
//$("#div1").attr("class","div");
$("#div1").addClass("div");
})

五、操作页面元素的属性

$("#bu1").click(function(){
//获得元素对象
var tex=$("#inp1");
//获得元素对象的属性
var te=tex.attr("type");
var cl =tex.attr("class");
//获得元素固有的属性值
var val =tex.attr("value");
console.log(te+"------"+cl+"-----"+val);
//获得文本框实时输入的值
var val2=tex.val();
// alert(val2);
}


tex.attr("type","button");
tex.attr("value","测试按钮");
//支持json数据格式
tex.attr({"type":"button","value":"测试按钮"});
var ch= $("#fav").attr("checked");
var flag=$("#fav").prop("checked",true);

六、操作页面的文本和值

//获得div元素对象
var div =$("#div1");
//获得元素的内容 含有HTML的标签的
var ht=div.html();
console.log(ht);
//只是获得文本内容, 不含有HTML标签
var te =div.text();
console.log(te);
//获得文本框的值
var val=$("#inp1").val();
console.log(val);


可以识别里面的html代码
div.html("<b>我们都爱笑</b>");
识别不了里面的HTML代码
div.text(div.text()+"<b>我们都爱笑</b>");
获得文本的值
$("#inp1").val("sxt");

注意特殊情况:
Select 、textarea 两个标签获得值得时候需要用val()

七、操作页面的元素

//创建了新的元素
var p=$("<p> <b>List Item0</b> </p>")
//增加子元素 ---现有元素之后
$("#div1").append(p);
//把p元素增加到 div里面
p.appendTo("#div1");
//添加内部的子元素 ---现有元素之前
$("#div1").prepend(p);
p.prependTo("#div1");
//平级的添加元素---现有元素之前
p.insertBefore("#div1");
$("#div1").before(p);
//平级的添加元素---现有元素之后
p.insertAfter("#div1");
$("#div1").after(p);
操作页面的元素 B
/***********替换指定的节点******************/
 
$("div p:nth-child(1)").replaceWith(p);
 
p.replaceAll("div p:nth-child(5)");
 
/**********删除指定的节点元素******************/
//删除指定的元素
$("#div1").remove();
$("div p:nth-child(3)").remove();
//清空内容
$("#div1").empty();
$("div p:nth-child(2)").empty();

八、事件处理

/*页面加载完执行的操作*/
$(function(){})
jQuery(function(){})
$(document).ready(function(){})
$(function(){
/*******事件的基础绑定*************/
$("#bu1").click(function(){
alert("单击事件");
})
$("#bu1").dblclick(function(){
alert("双击事件");
})
/*******bind事件绑定**************/
$("#bu2").bind('click',function(){
alert("单击事件绑定");
 })
//内容还支持json数据格式
$("#bu2").bind({
 'click':function(){},
 'dblclick':function(){},
 'blur':function(){}
 })
/*********one一次事件绑定*************/
$("#bu3").one('click',function(){
alert("一次事件绑定");
})
事件处理 B
/*********trigger事件操作****************/
$("#bu4").click(function(){
$("#bu1").trigger('dblclick');
$("#bu3").trigger('click');
})
/********事件的解绑*********************/
$("#bu5").click(function(){
//事件的解绑
//解绑指定对象上的所有事件
$("#bu1").unbind();
//解绑指定的事件
$("#bu1").unbind("dblclick");
})
$(".bu6").click(function(){
alert("单击事件的绑定");
})
$(".bu6").live('click',function(){
alert("单击事件绑定");
})
$("body").append('<input type="button" name=""
id="" class="bu6" value="事件操作 2" />');

九、动画功能 A

//获得div对象
var div1 =$("#div1");
//3s隐藏动画
div1.hide(3000);
div1.show(3000);
//隐藏的显示 ---显示的隐藏
//$("div").toggle(3000);
//滑动上
div1.slideUp(3000);
//滑动下
div1.slideDown(3000);
//滑动上--滑动下 滑动下---滑动上
$("div").slideToggle(3000);
//淡出
div1.fadeOut(3000);
//淡入
div1.fadeIn(3000);

动画功能 B
//获得div对象
var div1 =$("#div1");
//3s隐藏动画
div1.hide(3000);
div1.show(3000);
//隐藏的显示 ---显示的隐藏
//$("div").toggle(3000);
//滑动上
div1.slideUp(3000);
//滑动下
div1.slideDown(3000);
//滑动上--滑动下 滑动下---滑动上
$("div").slideToggle(3000);
//淡出
div1.fadeOut(3000);
//淡入
div1.fadeIn(3000);
 

十、Jquery 的封装原理

<h1>jQuery中的封装原理</h1>
<h3>匿名函数的自调用</h3>
<h3>闭包原理</h3>


闭包的优点:

 1、可以减少全局变量的对象,防止全局变量过去庞大,
导致难以维护
 2、防止可修改变量,因为内部的变量外部是无法访问的,
并且也不可修改的。安全
 3、读取函数内部的变量,另一个就是让这些变量的值始
终保持在内存中。
参考网址:
https://www.cnblogs.com/sq45711478/p/5990347.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值