前端基础之Jquery

href

清空文本框内容是.txt()【调用该方法赋值内容为“”就可以了】,清空文本框内容及标签的是html(),清空输入框内容是.val()清除元素格式及内容的是.empty()【此时当前输入框结构也会消失】

添加样式,一个样式,属性和值用逗号隔开,小括号,属性加不加双引号均可,属性值必须双引号;如果多个样式,用大括号属性及属性值之间用冒号隔开;多个样式用分号隔开。添加删除类样式必须添加的是自定义的类【此时双引号选中的类选择器不加点】答案D

D错误原因,要么添加样式用css.(“display”,”none”)要么添加类选择器addClass(“a”);【只能添加类选择器,此时不加点】css()是直接对样式的值进行设置,而addClass()是给元素添加类样式。addClass()比css()更加常用,因为使用addClass()添加样式,更加符合W3C规范中“结构与样式分离”的准则

.val()获得属性value的值,在js中标签必须要有value属性;

html() : 获取第一个匹配元素的HTML内容或文本内容。

html(content) : 设置所有匹配元素的HTML内容或文本内容。

text() : 获取所有匹配元素的文本内容。

text (content) : 设置所有匹配元素的文本内容。

val():获取第一个被选元素的value属性的值。

val(content):设置所有匹配元素的value属性的值。

css()和addClass()都能改变元素的样式。

1.jquery简介

一个JavaScript框架。简化JS开发

JavaScript框架:【本质上就是一些js文件】,封装了js的原生代码而已

由美国人John Resig于【2006】年创建;jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的【封装】

它的设计思想是write less,do more例如实现隔行变色效果,只需一句关键代码$(“tr:even”).css(“background-color”,"#e8f0f2");

jQuery能做的JavaScript也都能做,但使用jQuery能大幅提高开发【效率】

优势:

体积小,压缩后只有100KB左右
强大的选择器
出色的DOM封装
可靠的事件处理机制
出色的浏览器兼容性
使用【隐式迭代】简化编程
丰富的插件支持

链式操作和this

对一个对象进行多重操作,并将操作结果返回给该对象

.next()/.previous () 获得下个元素的操作;

或者选择器后面连续调用多个方法,通过.

ps:也可以利用原生js,选择在方法中的选择器调用方法后分号结束;再使用同一个选择器,此时可以用this代替你要使用的选择器;

使用多个样式属性时可以用花括号包裹,每个属性及值用冒号分隔;属性之间用逗号隔开;

隐式迭代

没有通过循环的方法while,forin ,fori进行循环操作

jquery-3.版本号.js(开发版)约****286KB完整无压缩版本,主要用于测试、学习和开发
jquery-3.版本号.min.js(发布版)约****94.8KB经过工具压缩或经过服务器开启Gzip压缩,主要应用于发布的产品和项目

添加注释的注意事项

开发阶段为代码添加注释,可以增加代码的【可读性】,能够让别人很容易的读懂你的代码,便于后期维护
维护阶段建议把【关键的模块形成开发文档】,便于后期维护,即便后期删除代码注释,也不影响后期维护
产品正式发布建议【删除注释】,减少文件大小,加快下载速度,提高用户体验

DOM对象和jQuery对象

DOM对象和jQuery对象分别拥有一套独立的方法,不能混用
DOM对象:直接使用JavaScript获取的节点对象
var objDOM=document.getElementById("title"); 
var objHTML=objDOM.innerHTML;  
Query对象:使用jQuery[包装DOM对象后]产生的对象,它能够使用jQuery中的方法
$("#title").html( );
等同于
document.getElementById("title").innerHTML;


DOM对象转化为jQuery对象
【jQuery对象命名一般约定以$开头;在事件中经常使用$(this),this是触发该事件的对象】
var txtName =document.getElementById("txtName"); 
var $txtName =$(txtName); 

jQuery对象转化为DOM对象
jQuery对象是一个【类似数组】的对象,可以通过[index]的方法得到相应的DOM对象
var $txtName =$ ("#txtName"); 
var txtName =$txtName[0]; 
通过get(index)方法得到相应的DOM对象
var $txtName =$("#txtName");
var txtName =$txtName.get(0);


2.应用场景

访问和操作DOM元素
控制页面样式
对页面事件进行处理
扩展新的jQuery插件
与Ajax技术完美结合

3.jQuery基本语法

3-1使用jQuery弹出提示框

jQuery 入口函数:

$(document).ready(function(){
    // 执行代码
});
或者【简化写法】
$(function(){
    // 执行代码
});

JavaScript 入口函数:

window.onload = function () {//只能执行一次
    // 执行代码
}




$()jquery的查询选择器  .ready(调用的函数) 准备好了的方法【文档只要加载就执行】

<script>
     $(document).ready(function() {//为页面加载事件的绑定方法
        alert("我欲奔赴沙场征战jQuery,势必攻克之!");
    });
</script>

3-2$(document).ready()与window.onload比较

window.onload 只能定义一次,如果定义多次,后边的会将前边的覆盖掉

** **window.onload$(document).ready()
执行时机** 必须等待网页中所有的内容【加载完毕后】(包括图片、flash、视频等)才能执行 **网页中所有DOM文档结构【绘制】完毕后【即刻执行】,可能与DOM元素关联的内容(图片、flash、视频等)【并没有加载完】
编写个数同一页面【不能】同时编写多个同一页面能【同时编写多个】
简化写法$(function(){ //执行代码}) ;

3-3jQuery 语法

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作
基础语法是:$(selector).action()

工厂函数$():将DOM对象转化为jQuery对象

“$”等同于“ jQuery ”【使用前需要确保外部引入了js插件】

选择器 selector:获取需要操作的DOM 元素
方法action():jQuery中提供的方法,其中包括绑定事件处理的方法

click()单击事件dbclick()双击事件

【click是jquery事件】

【onclick是js事件】

jquey添加多个样式建议引入css【里面必须是类选择器才能使用addclass()】

引入通用js文件和单独对应HTML的js.

引入js文件的位置必须在头部,因为正文需要用,否则$不能使用

失去焦点和获取焦点事件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>原生jQuery</title> 
//简化jquery的方法  $( function(){});
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("input").focus(function(){//输入时,获得焦点,背景色变为黑色;
    $(this).css("background-color","#cccccc");
  });
  $("input").blur(function(){//失去焦点后,背景色恢复白色;
    $(this).css("background-color","#ffffff");
  });
  
  
  
  上述代码可以优化为【采用链式操作】
  $(document).ready(function(){
  $("input").focus(function(){//输入时,获得焦点,背景色变为黑色;
    $(this).css("background-color","#cccccc");
  }).blur(function(){//失去焦点后,背景色恢复白色;
    $(this).css("background-color","#ffffff");
  });
});
</script>
</head>
<body>

Name: <input type="text" name="fullname"><br>
Email: <input type="text" name="email">

</body>
</html>
菜鸟教程(runoob.com)

4jQuery基本选择器

包括标签选择器、类选择器、ID选择器、并集选择器和【全局选择器】

名称语法构成描述示例
标签选择器element根据给定的标签名匹配元素$(“h2” )选取所有h2****元素
类选择器.class根据给定的class匹配元素$(" .title")选取所有classtitle****的元素
ID****选择器#id根据给定的id匹配元素$(" #title")选取idtitle****的元素
并集选择器selector1,selector2,…,selectorN将每一个选择器匹配的元素合并后一起返回$(“div,p,.title” )选取所有div**、p和拥有classtitle的元素**
全局选择器*****匹配所有元素**$("*" )**选取所有元素
标签选择器根据给定的标签名匹配元素
$(document).ready(function(){
    $("dt").click(function(){
        $("dd").css("display","block"); 
    });
    $("h1").css("color","blue");
})

类选择器根据给定的class匹配元素【多个属性用花括号,属性间用分号隔开】
$(".price").css({"background":"#efefef","padding":"5px"});

ID选择器根据给定的id匹配元素
$("#author").css("color","#083499");

并集选择器用来合并元素集合【使用并集选择器时,尽量把父类写全些,以相同的父类开始】
$(".intro,dt,dd").css("color","#ff0000");








5。jQuery层次选择器

后代选择器ancestor descendant选取ancestor元素里的所有descendant(后代)元素**$("#menu span" )选取#menu下的**元素
子选择器parent>child选取parent元素下的child(子)元素$(" #menu>span" )选取#menu的子元素
相邻元素选择器prev+next选取紧邻prev元素之后的next元素$(" h2+dl " )选取紧邻

元素之后的同辈元素

同辈元素选择器prev~sibings选取prev元素之后的所有siblings元素$(" h2~dl " )选取

元素之后所有的同辈元素

后代选择器用来获取元素的后代元素
$(".textRight p").css("color","red");

子选择器用来获取元素的子元素
$(".textRight>p").css("color","red");

相邻选择器用来选取紧邻目标元素的【下一个元素】
 $("h1+p").css(text-decoration","underline"); 

【同辈选择器】用来选取【目标元素之后】的所有同辈元素
$("h1~p").css("text-decoration","underline");



6.jQuery属性选择器【包含属性/等于或不等于属性值/属性值开头,结尾,包含】

[attribute^=value]选取给定属性是以某些特定值开始的元素$(" [href^=‘en’]" )选取href属性值以en****开头的元素
[attribute$=value]选取给定属性是以某些特定值结尾的元素 ( " [ h r e f (" [href ("[href=’.jpg’]" )选取href属性值以.jpg****结尾的元素
[attribute*=value]选取给定属性是以【包含】某些值的元素$(" [href* =‘txt’]" )选取href属性值中含有txt****的元素
属性选择器可以根据是否包含某属性来选取元素
$("#news a[class]").css("background","#c9cbcb");

属性选择器可以根据属性的值来选取元素
$("#news a[class='hot']").css("background","#c9cbcb");
属性选择器可以指定选取【不等于】属性是某个特定值的元素
$("#news a[class!='hot']").css("background","#c9cbcb");

属性选择器可以指定属性值以指定值开头的元素
("#news a[href^='www']").css("background","#c9cbcb");
属性选择器可以指定属性值以指定值结尾的元素
$("#news a[href$='html']").css("background","#c9cbcb");
属性选择器可以指定属性值包含指定值的元素
$("#news a[href*='k2']").css("background","#c9cbcb");





7.过滤选择器【利用伪类选择器;】

通过特定的过滤规则来筛选出所需的元素
主要分类基本过滤选择器;可见性过滤选择器;表单对象过滤选择器;内容过滤选择器、子元素过滤选择器

7-1基本过滤选择器

:eq(index)选取索引等于index的元素(index0开始)**$(“li:eq(1)” )选取索引等于1
  • **元素
:gt(index)选取索引大于index的元素(index0开始)$(" li:gt(1)" )选取索引大于1
  • 元素(注:大于1**,不包括1)**
:lt(index)选取索引小于index的元素(index0开始)$(“li:lt(1)” )选取索引小于1
  • 元素(注:小于1**,不包括1)**
:header选取所有标题元素,如****h1~h6**$(":header" )**选取网页中所有标题元素
:focus选取当前获取焦点的元素**$(":focus" )**选取当前获取焦点的元素
:animated选择所有动画**$(":animated" )**选取当前所有动画元素
:first选取第一个元素**$(" li:first" )选取所有
  • 元素中的第一个
  • **元素
:last选取最后一个元素**$(" li:last" )选取所有
  • 元素中的最后一个
  • **元素
:not(selector)选取去除所有与给定选择器匹配的元素$(" li:not**(.three)" )选取class不是three****的元素**
:even选取索引是偶数的所有元素(index0开始)**$(" li:even" )选取索引是偶数的所有
  • **元素
:odd选取索引是奇数的所有元素(index0开始)**$(" li:odd" )选取索引是奇数的所有
  • **元素

7-2可见性过滤选择器【通过元素显示状态来选取元素】

:visible选取所有可见的元素 ( " : v i s i b l e " ) ∗ ∗ ∗ ∗ 选 取 所 有 可 见 的 元 素 ∗ ∗ ∗ ∗ (":visible" )****选取所有可见的元素**** (":visible")("p:visible**").hide();**** **
:hidden选取所有隐藏的元素 ( " : h i d d e n " ) ∗ ∗ ∗ ∗ 选 取 所 有 隐 藏 的 元 素 ∗ ∗ ∗ ∗ (":hidden" )** **选取所有隐藏的元素**** (":hidden")("p:hidden**").show();**** **

7-3表单过滤选择器

​ \1. 可用元素选择器 语法: :enabled 获得可用元素

​ \2. 不可用元素选择器

​ 语法: :disabled 获得不可用元素

​ \3. 选中选择器

​ 语法: :checked 获得单选/复选框选中的元素

​ \4. 选中选择器

​ 语法: :selected 获得下拉框选中的元素

8jQuery选择器注意事项

<div id="id#a">aa</div>
<div id="id[2]">cc</div

1.特殊符号的转义
$("#id\\#a");         $("#id\\[2\\]");


9.DOM操作分为三类:

DOM Core:【任何一种】支持DOM的编程语言都可以使用它,如getElementById()
HTML-DOM:用于处理HTML文档,如document.forms
CSS-DOM:用于操作CSS,如element.style.color=“green”
JavaScript用于对(x)html文档进行操作,它对这三类DOM操作都提供了支持

9-0DOM的 属性操作

​ \1. 通用属性操作

​ \1. attr(): 获取/设置元素的属性

​ \2. removeAttr():删除属性

​ \3. prop():获取/设置元素的属性

​ \4. removeProp():删除属性

attr和prop区别?

​ \1. 如果操作的是元素的【固有属性】,则建议使用prop

​ \2. 如果操作的是元素【自定义的属性,】则建议使用attr

2. 对class属性操作

​ \1. addClass():添加class属性值

​ \2. removeClass():删除class属性值

​ \3. toggleClass():切换class属性

​ toggleClass(“one”):

​ 判断如果元素对象上存在class=“one”,则将属性值one删除掉。 如果元素对象上不存在class=“one”,则添加

jQuery中的DOM操作

9-1样式操作【设置,获取,追加,移除,切换,是否包含样式】

使用css()为指定的元素设置样式值或获取样式值

css(“属性”,“属性值”) ;//获得一个属性
css({“属性1”:“属性值1”,“属性2”:“属性值2”…}) //获得多个属性

追加样式$(selector).addClass(class);或 $(selector).addClass(class1 class2 … classN);

移除样式$(selector).removeClass(“class”) ;或 $(selector).removeClass("class1 class2 … classN ") ;

切换样式$(selector).toggleClass(class) ;

判断是否包含指定的样式$(selector). hasClass(class);

标签内容操作【见10】

设置单个或多个属性
$(this).css("border","5px solid #f5f5f5");或$(this).css({"border":"5px solid #f5f5f5","opacity":"0.5"})
获得属性
css(name)
设置透明度【1完全不透明】
"opacity":"0.5"


追加样式
$(selector).addClass(class);或   $(selector).addClass(class1 class2 … classN);

.text{ padding:10px;}
.content {background-color:#FFFF00; }
.border {border:1px dashed #333; }

$("h2").mouseover(function() {
     $("p").addClass("content border");
});


移除样式
$(selector).removeClass("class") ;或   $(selector).removeClass("class1 class2 … classN ") ;

$("h2").mouseout(function() {
        $("p").removeClass("text content");
});

切换样式
$(selector).toggleClass(class) ;
【模拟了addClass()与removeClass()实现样式切换的过程】

$("h2").click(function() {
    $("p").toggleClass("content  border")
});

判断是否包含指定的样式
$(selector). hasClass(class);

$("h2").mouseover(function() {
    if(!$("p").hasClass("content ")){
	$("p").addClass("content ");
	}
});
$("h2").mouseout(function() {
      if($("p").hasClass("content ")) {
	$("p").removeClass("content ");
    }
});

除css()外,还有获取和设置元素高度、宽度等的样式操作方法

css()	设置或返回匹配元素的样式属性
height([value])	设置或返回匹配元素的高度
width([value])	设置或返回匹配元素的宽度 
offset([value])	返回以像素为单位的top和left坐标。仅对可见元素有效
offsetParent( )	返回最近的已定位祖先元素。定位元素指的是元素的CSS position值被设置为relative、absolute或fixed的元素
position( )	返回第一个匹配元素相对于父元素的位置
scrollLeft([position])	参数可选。设置或返回匹配元素相对滚动条左侧的偏移
scrollTop([position])	参数可选。设置或返回匹配元素相对滚动条顶

9-2内容及Value值操作

val()可以获取或设置元素的value属性值

$(this).val();                //获取元素的value属性值
或     $(this).val(value)     //设置元素value的属性值  

9-3节点及节点属性操作

9-3-1查找节点


9-3-2创建节点

工厂函数$()用于获取或创建节点
$(selector):通过选择器获取节点
$(element):把DOM节点转化成jQuery节点
$(html):使用HTML字符串创建jQuery节点

var $newNode=$("<li></li>");
 var $newNode1=$("<li>你喜欢哪些冬季运动项目?</li>");
var $newNode2=$("<li title='last'>北京申办冬奥会是再合适不过了!</li>");

9-3-3插入节点

元素内部插入子节点

append(content) ( A ) . a p p e n d ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 追 加 到 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 中 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A).append(B)****表示将****B****追加到****A****中****如:**** (A).append(B)BA(“ul”).append($newNode1);
appendTo(content) ( A ) . a p p e n d T o ( B ) ∗ ∗ ∗ ∗ 表 示 把 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 追 加 到 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 中 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A).appendTo(B)****表示把****A****追加到****B****中****如:**** (A).appendTo(B)ABnewNode1.appendTo(“ul”);
prepend(content) ( A ) . p r e p e n d ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 前 置 插 入 到 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 中 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A). prepend (B)****表示将****B****前置插入到****A****中****如:**** (A).prepend(B)BA(“ul”). prepend ($newNode1);
prependTo(content) ( A ) . p r e p e n d T o ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 前 置 插 入 到 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 中 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A). prependTo (B)****表示将****A****前置插入到****B****中****如:**** (A).prependTo(B)ABnewNode1. prependTo (“ul”);

元素部外插入【同辈】节点

after(content) ( A ) . a f t e r ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 插 入 到 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 之 后 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A).after (B)****表示将****B****插入到****A****之后****如:**** (A).after(B)BA(“ul”).after($newNode1);
insertAfter(content) ( A ) . i n s e r t A f t e r ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 插 入 到 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 之 后 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A). insertAfter (B)****表示将****A****插入到****B****之后****如:**** (A).insertAfter(B)ABnewNode1.insertAfter(“ul”);
before(content) ( A ) . b e f o r e ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 插 入 至 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 之 前 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A). before (B)****表示将****B****插入至****A****之前****如:**** (A).before(B)BA(“ul”).before($newNode1);
insertBefore(content) ( A ) . i n s e r t B e f o r e ( B ) ∗ ∗ ∗ ∗ 表 示 将 ∗ ∗ ∗ ∗ A ∗ ∗ ∗ ∗ 插 入 到 ∗ ∗ ∗ ∗ B ∗ ∗ ∗ ∗ 之 前 ∗ ∗ ∗ ∗ 如 : ∗ ∗ ∗ ∗ (A). insertBefore (B)****表示将****A****插入到****B****之前****如:**** (A).insertBefore(B)ABnewNode1.insertBefore(“ul”);

9-3-4删除节点

remove():删除整个节点$(selector).remove([expr]);
empty():清空节点内容  $(selector).empty();
detach():删除整个节点,保留元素的绑定事件、附加的数据

9-3-5替换节点

replaceWith()【替换部分】和replaceAll()用于替换某个节点【全部替换为】

var $newNode1=$("<li>你喜欢哪些冬季运动项目?</li>");
$(".gameList li:eq(2)").replaceWith($newNode1);

$($newNode1).replaceAll(".gameList li:eq(2)")

9-3-6复制节点

clone()用于复制某个节点
$(selector).clone([includeEvents]) ;
参数ture或flase, true复制事件处理,flase时反之


$(".gameList li:eq(1)").click(function(){
     $(this).clone(true).appendTo(".gameList");
    })
$(".gameList li:eq(2)").click(function(){
     $(this).clone(false).appendTo(".gameList");
    })


9-0对属性进行操作

用来获取与设置元素属性
$(selector).attr([name]) ;获取属性值
或
$(selector).attr({[name1:value1]…[nameN:valueN]})设置多个属性值
$(".contain img").attr({width:"200",height:"80"});

removeAttr()用来删除元素的属性
$(selector).removeAttr(name) ;
例如$(".contain img").removeAttr("alt");


9-4节点遍历

遍历同辈元素jQuery

可以获取紧邻其后、紧邻其前和位于该元素前与后的所有同辈元素

next([expr])用于获取紧邻匹配元素之后的元素**$(“li:eq(1)”).next().addClass(“orange”);**
prev([expr])用于获取紧邻匹配元素之前的元素**$(“li:eq(1)”).prev().addClass(“orange”);**
slibings([expr])用于获取位于匹配元素【前面和后面的所有同辈元素**$(“li:eq(1)”).siblings().addClass(“orange”);**
children()方法可以用来获取元素的所有子元素【只包含儿子辈分,不含孙子辈】
$(selector).children([expr]);

ar $section =$("section").children();
alert($section.length);


jQuery中可以遍历前辈元素

parent():获取元素的父级元素
parents():元素元素的祖先元素

其他遍历方法:each( ) 、end( )、find( )、eq( )、first( )…
$("li:eq(1)").parent().addClass("orange");
 $("li:eq(1)").parents().addClass("orange");
each( ) :规定为每个匹配元素规定运行的函数
$(selector).each(function(index,element)) ;
$("img").click(function(){
       $("li").each(function(){
           var str=$(this).text()+"<br>";
           $("section").append(str);
       })
   });

end( ):结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态
$(".contain :header").css({"background":"#2a65ba","color":"#ffffff"});
$(".gameList li").first().css("background","#b8e7f9").end().last().css ("background","#d3f4b5");
$(".gameList li:last").css("border","none");


10.标签内容操作和HTML内容操作

语法格式参数说明功能描述
html( )无参数用于【获取第一个】匹配元素的HTML内容或文本内容
html(content)content为元素的HTML****内容用于【设置所有】匹配元素的HTML内容或文本内容
text( )无参数用于【获取所有】匹配元素的文本内容
text (content)content****为元素的文本内容用于【设置所有】匹配元素的文本内容
html()可以对HTML代码进行操作,类似于JS中的innerHTML
$("div.left").html();//获取元素中HTML代码
或
 $("div.left").html("<div class='content'>…</div>");//设置元素中的HTML代码

text()可以获取或设置元素的文本内容
$("div.left").text();//获取元素的文本内容
或
 $("div.left").text("<div class='content'>…</div>");//设置元素中的文本内容


11.网页中的事件

和WinForm一样,在网页中的交互也是需要事件来实现的,例如tab切换效果,可以通过鼠标单击事件来实现【点击选项卡,切换

jQuery事件是对JavaScript事件的封装,常用事件分类
基础事件
鼠标事件;键盘事件;window事件;表单事件
复合事件
鼠标光标悬停;鼠标连续点击

11-0监听机制

*事件监听机制:*

概念:某些组件被执行了某些操作后,触发某些代码的执行。

事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了

事件源:组件。如: 按钮 文本输入框…

监听器:代码。

注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。

常见的事件:

\1. 点击事件:

​ \1. onclick:单击事件

​ \2. ondblclick:双击事件

\2. 焦点事件

​ \1. onblur:失去焦点

​ \2. onfocus:元素获得焦点。

\3. 加载事件:

​ \1. onload:一张页面或一幅图像完成加载。

\4. 鼠标事件:

​ \1. onmousedown 鼠标按钮被按下。

​ \2. onmouseup 鼠标按键被松开。

​ \3. onmousemove 鼠标被移动。

​ \4. onmouseover 鼠标移到某元素之上。

​ \5. onmouseout 鼠标从某元素移开。

\5. 键盘事件:

​ \1. onkeydown 某个键盘按键被按下。

​ \2. onkeyup 某个键盘按键被松开。

​ \3. onkeypress 某个键盘按键被按下并松开。

\6. 选择和改变

​ \1.【 onchange 域的内容被改变。】

​ \2. onselect 文本被选中。

\7. 表单事件:

​ \1. onsubmit 确认按钮被点击。

11-1鼠标事件

是当用户在文档上移动或单击鼠标时而产生的事件

使用mouseleave和mouseout;【鼠标离开被选元素时会触发】鼠标在其被选元素的子元素上来回离开时:触发mouseout
使用mouseenter和mouseover;【鼠标进入被选元素时会触发】鼠标在其被选元素的子元素上来回离开时:触发mouseover
mouseover 事件在鼠标移动到选取的【元素及其子元素】上时触发 。
mouseenter 事件只在鼠标移动到选取的【元素】上时触发
mouseout 事件在鼠标离开任意一个【子元素及选的元素】时触发。
mouseleave 事件只在鼠标离开选取的的【元素】时触发。

click( )触发或将函数绑定到指定元素的click事件单击鼠标时
mouseover( )触发或将函数绑定到指定元素的mouseover事件鼠标指针移过时
mouseout( )触发或将函数绑定到指定元素的mouseout事件鼠标指针移出时
mouseenter**( )**触发或将函数绑定到指定元素的mouseenter事件鼠标指针进入时
mouseleave**( )**触发或将函数绑定到指定元素的mouseleave事件鼠标指针离开时
//仿真导航栏鼠标移入移出导航栏的背景颜色
$(".nav-ul a").mouseover(function(){
	$(this).css("background-color","#f01e28");
});
$(".nav-ul a").mouseout(function(){
	$(this).css("background-color","#ff2832");
});



仿真京东固定层设置
制作京东首页右侧的固定层,6个图标:京东会员、购物车、我的关注、我的足迹、我的消息和咨询JIMI
默认状态下仅显示图标,背景颜色为深灰色;当鼠标移至图标上时,背景颜色为深红色,并且显示文本
实现思路
使用列表制作页面内容,使用<span>和<p>分别显示图片和文本内容
使用【index( ) 获取当前鼠标移至元素在列表中的索引值】,使用eq( )获取当前元素所在<li>
使用同辈元素选择器和eq( )选择器获取当前<span>元素的兄弟元素<p>

var index=$("#nav li span").index(this);
$("#nav li:eq("+index+") span~p").show();


11-2键盘事件

用户每次按下或者释放键盘上的键时都会产生事件,常用键盘事件

keydown( ) 触发或将函数绑定到指定元素的keydown事件 按下键盘时
keyup( ) 触发或将函数绑定到指定元素的keyup事件 释放按键时
keypress( ) 触发或将函数绑定到指定元素的keypress事件 产生可打印的字符时

【keypress()和keydown()功能类似,如果改变输入框背景颜色时,只会显示keypress()结果】

 以键盘事件为例,实现按键时特效
append( )方法,链式操作
 
 $("[type=password]").keyup(function () {//键盘弹起
	$("#events").append("keyup");
      }).keydown(function (e) {//键盘按下
	$("#events").append("keydown");
      }).keypress(function () {//键盘输入内容
	$("#events").append("keypress");
     });
     
     
$(document).keydown(function (event) {
	 if (event.keyCode == "13") {//回车键时
		alert("确认要提交么?");
	}
});

11-3浏览器事件

调整窗口大小时,完成页面特效 $(selector).resize( );

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>对浏览器窗口大小进行计数</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
x=0;
$(document).ready(function(){
  $(window).resize(function(){
    $("span").text(x+=1);
  });
  $("button").click(function(){
    $(window).resize();
  });
});
</script>
</head>
<body>

<p>窗口重置了 <span>0</span> 次大小。</p>
<button>触发窗口的 resize 事件</button>

11-4绑定与移除事件

移除事件使用unbind()方法事件类型,主要包括:blur、focus、click、mouseout等基础事件,此外,还可以是自定义事件
unbind([type],[fn])
当unbind()不带参数时,表示移除所绑定的全部事件。通过移除绑定事件可以实现切换内容的效果

绑定【单个事件】使用绑定实现鼠标移至“我的当当”显示二级菜单【下拉菜单】
$(document).ready(function(){
	$(".on").bind("mouseover",function(){
		$(".topDown").show();
	});
});
使用绑定【多个事件】实现“我的当当” 二级菜单的显示和隐藏
$(".top-m .on").bind({
	mouseover:function(){
		$(".topDown").show();
	},
	mouseout:function(){
		$(".topDown").hide();
	}
});



tab切换页面
$("#del").click(function(){
        $("#nav li:first").unbind("click", content1)
});


15复合事件【toggle/hover】

hover( )方法【消失和隐藏的方法】 toggle( )方法[【不同方法之间相互切换】

toggle()方法不带参数,与show( )和hide( )方法作用一样

hover()方法相当于mouseover与mouseout事件的组合
hover(enter,leave);

$(".top-m .on").hover(function(){//光标移入时显示,
	$(".topDown").show();
          },
         function(){//光标移出时触发隐藏特效
	 $(".topDown").hide();


toggle()方法用于模拟鼠标连续click事件
toggle(fn1,fn2,...,fnN);

$("input").toggle(
        function(){$("body").css("background","#ff0000");},
         function(){$("body").css("background","#00ff00");},
          function(){$("body").css("background","#0000ff");}
    )
toggle()方法不带参数,与show( )和hide( )方法作用一样
$("input").click(function(){$("p").toggle();})

toggle( )和toggleClass( )总结
toggle( fn1,fn2...)实现单击事件的切换,无须额外绑定click事件
toggle( )实现事件触发对象在显示和隐藏状态之间切换
toggleClass( )实现事件触发对象在加载某个样式和移除某个样式之间切换

16callback函数

callback 参数,有以下两点说明:【你所需要调用的函数】

1.$(selector)选中的元素的个数为n个,则callback函数会执行n次;

当 callback 函数加上括号时,函数立即执行,只会调用一次, 如果不加括号,元素显示或隐藏后调用函数,才会调用多次

2.callback函数名后加括号,会立刻执行函数体,而不是等到显示/隐藏完成后才执行;

3.callback既可以是函数名,也可以是匿名函数

17.CRUD操作:

append/appendTo prepend/prependto after/insertAfter before/insetBefore

​ \1. append():父元素将子元素追加到末尾

​ 对象1.append(对象2): 将对象2添加到对象1元素内部,并且在末尾【添加的在后面】12

​ \2. prepend():父元素将子元素追加到开头

​ 对象1.prepend(对象2):将对象2添加到对象1元素内部,并且在开头

​ \3. appendTo():

​ 对象1.appendTo(对象2):将对象1添加到对象2内部,并且在末尾【对象本身在后面】21

​ \4. prependTo():

​ 对象1.prependTo(对象2):将对象1添加到对象2内部,并且在开头

​ \5. after():添加元素到元素后边

​ 对象1.after(对象2): 将对象2添加到对象1后边。对象1和对象2是兄弟关系

​ \6. before():添加元素到元素前边

​ 对象1.before(对象2): 将对象2添加到对象1前边。对象1和对象2是兄弟关系

​ \7. insertAfter()

​ 对象1.insertAfter(对象2):将对象2添加到对象1后边。对象1和对象2是兄弟关系

​ \8. insertBefore()

​ 对象1.insertBefore(对象2): 将对象2添加到对象1前边。对象1和对象2是兄弟关系

​ \9. remove():移除元素

​ 对象.remove():将对象删除掉

​ \10. empty():清空元素的所有后代元素。

​ 对象.empty():将对象的后代元素全部清空,但是【保留当前对象以及其属性节点】

18.jQuery动画效果

可选。表示速度,默认为“0”,可能值:毫秒(如1000)、slow、normal、fast

18-1控制元素显示与隐藏

show() 控制元素的显示,hide( )控制元素的隐藏;

$(selector).show([speed],[callback])
$(selector).hide([speed],[callback])

18-2改变元素的透明度

fadeIn()和fadeOut()可以通过改变元素的透明度实现淡入淡出效果

$(selector).fadeIn([speed],[callback])
$(selector).fadeOut([speed],[callback])
## jQuery fadeTo() 方法

jQuery fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。

**语法:**

$(*selector*).fadeTo(*speed,opacity,callback*);

必需的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间,0完全透明,1完全不透明)

18-3改变元素高度

slideDown() 可以使元素逐步延伸显示slideUp()则使元素逐步缩短直至隐藏

$(selector).slideUp ([speed],[callback])
$(selector).slideDown ([speed],[callback])



$(document).ready(function() {
       $("h2").click(function(){
	   $(".txt").slideUp("slow");
	   $(".txt").slideDown("slow");
       });
 });


18-4自定义动画

$(selector). animate({params},speed,callback)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_45442261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值