今日任务

使用JQuery完成页面定时弹出广告

定时器:

​    setInterval     clearInterval

​    setTimeout    clearTimeout

显示:  img.style.display  = "block"

隐藏:  img.style.display  = "none"

img 对象

​    style属性:  style对象

使用JQuery完成表格的隔行换色

获得所有的行

​    table.rows[ ]

修改行的颜色

​    row.bgColor ="red"

​    row.style.backgroundColor = "black"

​    row.style.background = "red"

​    "background-color:red"

​    "background:red"

使用JQuery完成复选框的全选效果

checked属性

如何获取所有复选框:

​    document.getElementsByName   get Elements  By Name  数据库里面

使用JQuery完成省市联动效果

​    JS中的数组:  ["城市"]

​    new Array()

​    DOM树操作:

​        创建元素节点:  document.createElement

​        创建文本节点: document.createTextNode

​        添加节点:  appendChild

使用JQuery完成下列列表左右选择

​    select下拉列表

​    multiple 允许多选

​    ondblclick : 双击事件

​    for循环遍历,一边遍历一边移除出现的问题

使用JQuery完成表单的校验(扩展)

​    事件:

​    获得焦点事件: onfocus

​    失去焦点事件: onblur

​    按键抬起事件: onkeyup

​    鼠标移入:  onmouseenter

​    鼠标移出: onmouseout

​    JS引入外部文件 : script

今日目标:

掌握JQuery的基本使用

掌握JQuery的基本选择器,层次选择器

会使用JQuery完成DOM的基本操作

1. 使用JQuery完成页面定时弹出广告

1.1 需求分析:

当用户打开界面,3秒钟之后弹出广告,这个广告显示5秒钟,隐藏广告
 1.2 技术分析

定时器: setTimeout

显示和隐藏:  style.display = "block/none"

什么JQuery:

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(*或JavaScript框架*)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等

JQuery的作用:

​    1. 写更少的代码,做更多的事情: write Less ,Do more

2. 将我们页面的JS代码和HTML页面代码进行分离

为什么学习JQuery:

​    提高我们的工作效率

JQ的入门

<script>
//js文档加载完成的事件
window.onload = function(){
alert("window.onload 111");
} window.onload = function(){
alert("window.onload 222");
} /*文档加载完成的事件*/
jQuery(document).ready(function(){
alert("jQuery(document).ready(function()");
});
/*
jQuery 简写成 $
*/
$(document).ready(function(){
alert("$(document).ready(function()");
}); /*
最简单的写法
*/
$(function(){
alert("$(function(){");
}); </script>

【JQ中根据ID查找元素】

全都是根据选择器去找的
#ID{}
.类名{}
$("#ID的名称")

【JQ和JS之间的转换】

- JQ对象,只能调用JQ的属性和方法
- JS对象 只能调用JS的属性和方法

function changeJS(){
var div = document.getElementById("div1");
// div.innerHTML = "JS成功修改了内容"
//将JS对象转成JQ对象
$(div).html("转成JQ对象来修改内容")
} $(function(){
//给按钮绑定事件
$("#btn2").click(function(){
//找到div1
// $("#div1").html("JQ方式成功修改了内容");
//将JQ对象转成JS对象来调用
var $div = $("#div1");
// var jsDiv = $div.get(0);
var jsDiv = $div[];
jsDiv.innerHTML="jq转成JS对象成功";
});
});

JQ的开发步骤: (将我们页面的JS代码和HTML页面代码进行分离)

1. 导入JQ相关的文件
    2.  文档加载完成事件: $(function)  : 页面初始化的操作: 绑定事件, 启动页面定时器
    3. 确定相关操作的事件
    4. 事件触发函数
    5. 函数里面再去操作相关的元素

显示和隐藏  img.style.display

【JQ中的动画效果】

javascript
show()
hide()
slideUp
slideDown
fadeIn
fadeOut
animate : 自定义动画

1.3 步骤分析:

1. 导入JQ的文件
2. 编写JQ的文档加载事件
3. 启动定时器 setTimeout("",3000);
4. 编写显示广告的函数
5. 在显示广告里面再启动一个定时器
6. 编写隐藏广告的函数

1.4 代码实现

<script>
//显示广告
function showAd(){
$("#img1").slideDown();
setTimeout("hideAd()",);
}
//隐藏广告
function hideAd(){
$("#img1").slideUp();
}
$(function(){
setTimeout("showAd()",);
});
</script>

JQuery中的选择器

让我们能够更加精确找到我们要操作的元素

基本选择器

- ID选择器 :     #ID的名称
- 类选择器:     以 . 开头  .类名
- 元素选择器:    标签的名称
- 通配符选择器:   * 
- 选择器,选择器:  选择器1,选择器2

基本选择器的案例

javascript
    <!--
            - ID选择器 :     #ID的名称
            - 类选择器:     以 . 开头  .类名
            - 元素选择器:    标签的名称
            - 通配符选择器:   * 
            - 选择器,选择器:  选择器1,选择器2
        -->

       <script>
//文档加载事件,页面初始化的操作
$(function(){
//初始化操作: 给按钮绑定事件
$("#btn1").click(function(){
$("#two").css("background-color","palegreen");
}); //找出mini类的所有元素
$("#btn2").click(function(){
$(".mini").css("background-color","palegreen");
});
$("#btn3").click(function(){
$("div").css("background-color","palegreen");
});
$("#btn4").click(function(){
$("*").css("background-color","palegreen"); });
/*选择器分组*/ //找出mini类 和 span元素
$("#btn5").click(function(){
$(".mini,span").css("background-color","palegreen");
});
});
</script>

JQ中的层级选择器

- 子元素选择器:   选择器1 > 选择器2
- 后代选择器:  选择器1 儿孙
- 相邻兄弟选择器 :  选择器1 + 选择器2 : 找出紧挨着的一个弟弟
- 找出所有弟弟:  选择器1~ 选择器2   : 找出所有的弟弟

<script>
//文档加载事件,页面初始化的操作
$(function(){
//初始化操作: 给按钮绑定事件
//找出body下面的子div
$("#btn1").click(function(){
$("body > div").css("background-color","palegreen");
});
//找出body下面的所有div
$("#btn2").click(function(){
$("body div").css("background-color","palegreen");
});
$("#btn3").click(function(){
$("#one+div").css("background-color","palegreen");
});
$("#btn4").click(function(){
$("#two~div").css("background-color","palegreen");
}); });
</script>

JQ中的基本过滤器

  <script>
$(function(){
/<script>
//文档加载事件,页面初始化的操作
$(function(){ //初始化操作: 给按钮绑定事件
//过滤出所有div中第一个元素
$("#btn1").click(function(){
$("div:first").css("background-color","palegreen");
}); //过滤出所有div中偶数位的div
$("#btn2").click(function(){
$("div:even").css("background-color","palegreen");
});
$("#btn3").click(function(){
$("div:odd").css("background-color","palegreen");
});
$("#btn4").click(function(){
$("div:gt(2)").css("background-color","palegreen");
}); });
</script>

JQ中的属性选择器

  $(function(){
//找到有name属性的input
$("#btn1").click(function(){
$("input[name]").attr("checked",true);
});
$("#btn2").click(function(){
$("input[name='accept']").attr("checked",true);
});
$("#btn3").click(function(){
$("input[name='newsletter'][value='Hot Fuzz']").attr("checked",true);
});
});

JQ中的表单过滤器

<script>
//1.文档加载事件
$(function(){
$(":text").css("background-color","pink");
});
</script>

上午的内容回顾:

什么是JQ:  write less , do more: 写更少的代码,做更多的事

​    javascript函数库

1.11版本

定时器:

动画效果:

​    show : 显示

​    hide : 隐藏

​    slideDown:

​    slideUp: 向上滑动

​    fadeIn

​    fadeOut

JQ选择器:

基本选择器:

​    ID选择器:  #ID的名字

​    类选择器:  .类名

​    元素选择器:   标签名称

​    通配符选择器:  *

​    选择器分组:  选择器1,选择器2

层级选择器:

​    后代选择器:  选择器1 儿孙

​    子元素选择器: 选择器1 > 儿子

​    相邻兄弟选择器:  选择器1 + 选择器2  找出紧挨着它的弟弟

​    所有弟弟选择器:  选择器1~选择器2  找出所有弟弟

基本过滤器:

​    选择器:first  : 找出的是第一个

​    :last  :找出的是最后一个

​    :even   找出索引为偶数

​    :odd    找出奇数索引

​    :gt(index) :  大于索引

​    :lt(index)   小于

​    :eq(index)  等于

属性选择器:

​    选择器[href]  : 单个属性

选择器[href][title] : 多个属性
选择器[href][title='test'] : 多个属性,包含值

表单过滤器:

​    :input   找出所有输入项:  input  textarea  select

​    :text

​    :password

表单对象属性:

​    找出select中被选中的那一项:

​    option:selected

JQ的开发步骤:

1. 导入JQ相关的包
    2. 文档加载文成的事件:  页面初始化:  绑定事件, 启动定时器
    3.  确定事件
    4. 实现事件索要触发的函数
    5. 函数里面再去操作我们要操作的元素

使用JQ完成表格的隔行换色

需求分析:

在我们的实际开发过程中,我们的表格如果所有的行都是一样的话,很容易看花眼,所以我们需要让我们的表格隔行换色

技术分析:

获取所有行 table.rows

遍历所有行

根据行号去修改每一行的背景颜色: bgColor

​    style.backgroundColor = "red"

步骤分析:

1. 导入JQ的包
2. 文档加载完成函数: 页面初始化
3. 获得所有的行 :   元素选择器
4. 根据行号去修改颜色

代码实现:

     $(function(){
//获得所有的行 : 元素选择器
$("tbody > tr:even").css("background-color","#CCCCCC");
//修改奇数行
$("tbody > tr:odd").css("background-color","#FFF38F");
// $("tbody > tr").css("background-color","#FFF38F"); });

使用JQuery完成表单的全选全不选功能

需求分析

​    在我们对表格处理的时,有些情况下,我们需要对表格进行批量处理,

技术分析:

代码实现:

使用JQ完成省市联动效果

需求分析:

​    在我们的注册表单中,通常我们需要知道用户的籍贯,需要一个给用选择的项,当用户选中了省份之后,列出省下面所有的城市

技术分析:

1. 准备工作 : 城市信息的数据

2. 添加节点 :  appendChild (JS)

1. append  :  添加子元素到末尾
   2. appendTo  : 给自己找一个爹,将自己添加到别人家里
   3. prepend : 在子元素前面添加
   4. after :   在自己的后面添加一个兄弟

3. 遍历的操作:

步骤分析:

1. 导入JQ的文件
2. 文档加载事件:页面初始化
3. 进一步确定事件:  change事件
4. 函数: 得到当前选中省份
5. 得到城市, 遍历城市数据
6. 将遍历出来的城市添加到城市的select中

代码实现:

$(function(){
$("#province").change(function(){
// alert(this.value);
//得到城市信息
var cities = provinces[this.value];
//清空城市select中的option
/*var $city = $("#city");
//将JQ对象转成JS对象
var citySelect = $city.get(0)
citySelect.options.length = 0;*/ $("#city").empty(); //采用JQ的方式清空
//遍历城市数据
$(cities).each(function(i,n){
$("#city").append("<option>"+n+"</option>");
});
});
});

使用JQ完成下拉列表左右选择

需求分析

我们的商品通常包含已经有了的, 还有没有的,现在我们需要有一个页面用于动态编辑这些商品

技术分析

步骤分析

1. 导入JQ的文件
    2. 文档加载函数 :页面初始化
    3.确定事件 : 点击事件 onclick
    4. 事件触发函数
    1. 移动被选中的那一项到右边

代码实现

<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<script>
$(function(){
$("#a1").click(function(){
//找到被选中的那一项
//将被选中项添加到右边
$("#rightSelect").append($("#leftSelect option:selected"));
}); //将左边所有商品移动到右边
$("#a2").click(function(){
$("#rightSelect").append($("#leftSelect option"));
});
});
</script

 今天内容总结:

定时器

动画效果: show  hide  slideDown  slideUp fadeIn  fadeOut  animate

基本选择器:

​    ID选择器: #ID名称

​    类选择器: .类名

​    元素选择器: 元素/标签名称

​    通配符选择器:  *  找出所有页面元素 包含页面上所有的标签

​    选择器分组 :   选择器1, 选择器2      [选择器1,选择器2]

层级选择器:

​    后代选择器:  选择器1 选择器2  找出所有的后代,儿子孙子曾孙

​    子元素选择器: 选择器1 >选择器2  找出所有儿子

​    相邻兄弟选择器:  选择器1+选择器2  : 找出紧挨着自己那个弟弟

​    兄弟选择器 :   选择器1~选择器2  :  找出所有的弟弟

属性选择器:

​    选择器[属性名称]

选择器[属性名称][属性名名]
选择器[属性名称='属性值'][属性名称='属性值'][属性名称='属性值']

表单选择器:

​    :input   找出所有的输入项 : 不单单找出input  textarea select

​    :text  找出type类型为 text

​    :password

基本过滤器:

​    :even

​    :odd

​    :gt

​    :lt

​    :eq

​    :first

​    :last

表单对象属性:

​    :selected

​    :checked

$(function)  : 文档加载完成的事件
css()  :     修改css样式
prop() :    修改属性/ 获取属性
html() :    修改innerHTML

append :     给自己添加子节点
appendTo :  将自己添加到别人家,给自己找一个爹
prepend :   在自己最前面添加子节点
after    :   在自己后面添加一个兄弟
empty    :   清空所有子节点

$(cities).each(function(i,n){
      
})

$.each(arr,function(i,n){
  
});

了解, 熟悉, 熟练, 精通

经过一个项目,将所有学过串起来

使用JQ完成表单的校验(扩展)

需求分析

在用户提交表单的时候, 我们最好是能够在用户数据提交给服务器之前去做一次校验,防止服务器压力过大,并且需要给用户一个友好提示

技术分析

- trigger
- triggerHandler
- is()

步骤分析

1. 首先给必填项,添加尾部添加一个小红点
2. 获取用户输入的信息,做相应的校验
3. 事件: 获得焦点, 失去焦点, 按键抬起
4. 表单提交的事件

代码实现

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../css/style.css" />
<title></title>
<!--
. 首先给必填项,添加尾部添加一个小红点
. 获取用户输入的信息,做相应的校验
. 事件: 获得焦点, 失去焦点, 按键抬起
. 表单提交的事件 Jq的方式来实现:
. 导入JQ的文件
. 文档加载事件: 在必填项后天加一个小红点
. 表单校验确定事件: blur focus keyup
. 提交表单 submit
-->
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<script> $(function(){ //默认做一些页面初始化
//动态在必填项后面添加小红点
$(".bitian").after("<font class='high'>*</font>"); //给必填项绑定事件
$(".bitian").blur(function(){
//首先获取用户当前输入的值
var value = this.value; //123
//清空上一次提示的信息
$(this).parent().find(".formtips").remove(); //判断当前的值是哪一项输入的值
if($(this).is("#username")){ //判断是否是用户名输入项
if(value.length < ){
$(this).parent().append("<span class='formtips onError'>用户名太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>用户名够用</span>");
}
} if($(this).is("#password")){ //判断是否是密码输入项
if(value.length < ){
$(this).parent().append("<span class='formtips onError'>,密码太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>密码够用</span>");
}
}
}).focus(function(){
$(this).triggerHandler("blur");
}).keyup(function(){
$(this).triggerHandler("blur");
}) //给表单提交绑定事件
$("form").submit(function(){
//触发所有必填项的校验
$(".bitian").trigger("focus");
//找到错误信息的个数
if($(".onError").length > ){
return false;
}
return true;
});
}); /*
$(function(){
// 在所有必填项后天加一个小红点 *
$(".bitian").after("<font class='high'>*</font>"); //事件绑定
$(".bitian").blur(function(){
// var value = this.value;
var value = $(this).val();
//清空当前必填项后面的span
// $(".formtips").remove();
$(this).parent().find(".formtips").remove();
//获得当前事件是谁的
if($(this).is("#username")){
//校验用户名
if(value.length < 6){
$(this).parent().append("<span class='formtips onError'>用户名太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>用户名够用</span>");
}
} if($(this).is("#password")){
//校验密码
if(value.length < 3){
$(this).parent().append("<span class='formtips onError'>密码太短了</span>");
}else{
$(this).parent().append("<span class='formtips onSuccess'>密码够用</span>");
}
}
}).focus(function(){
$(this).triggerHandler("blur");
}).keyup(function(){
$(this).triggerHandler("blur");
}); // $(".bitian").blur(function(){}).focus(function(){}).keyup(function(){}) //给表单绑定提交事件
$("form").submit(function(){
//触发必填项的校验逻辑
$(".bitian").trigger("focus"); var length = $(".onError").length
if(length > 0){
return false;
}
return true;
});
});*/ </script>
</head>
<body>
<form action="../index.html">
<div>
用户名:<input type="text" class="bitian" id="username" />
</div>
<div>
密码:<input type="password" class="bitian" id="password" />
</div>
<div>
手机号:<input type="tel" />
</div>
<div>
<input type="submit" />
</div>
</form>
</body>
</html>

04-JQuery的更多相关文章

  1. 【jQuery基础学习】04 jQuery中的表格操作及cookie插件的使用

    这章本来准备写成jQuery的表单操作和表格操作的. 然而昨天吧jQuery的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来. 那么今天就来看看表格吧. 因为平常做的都是公司的内部管理系统, ...

  2. 04 JQuery的使用

    01 对网站首页优化--定时弹出广告 <!-- 作者:offline 时间:2018-09-09 描述:在使用JQ前要导入jquery-1.11.0.min.js包 注意区分js和jq的对象 - ...

  3. 新鲜出炉的30个精美的 jQuery & CSS3 效果【附演示和教程】

    新鲜出炉的30个精美的 jQuery & CSS3 效果[附演示和教程]   作为最流行的 JavaScript 开发框架,jQuery 在现在的 Web 开发项目中扮演着重要角色,它简化了 ...

  4. 20+个可重复使用的jQuery代码片段

    jQuery已经成为任何web项目的重要组成部分.它为网站提供了交互性的通过移动HTML元素,创建自定义动画,处理事件,选择DOM元素,检索整个document ,让最终用户有一个更好的体验. 在这篇 ...

  5. jquery选择器和基本操作

    定义:jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: ...

  6. 2014年下半年计划—写博客,旅游,带女朋友拍写真

           前言:写这篇博客之前,一直在网上,看各位大牛写的博文,发布的视频等.当然由于自己的初来乍到,人生地不"熟"儿的,也吃了不少亏,走了不少弯路.本着一颗学习的心,携着向各 ...

  7. Web前端开发推荐阅读书籍、学习课程下载

    转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...

  8. jQuery实例——jQuery实现联动下拉列表查询框--转http://www.cnblogs.com/picaso/archive/2012/04/08/2437442.html#undefined

    jQuery实例--jQuery实现联动下拉列表查询框   在查询与列表显示的时候经常用到联动列表显示,比如一级选项是国家,二级选项是省,三级是市,这样的联动是联系的实时导出的,比如你不可能选择了四川 ...

  9. 【初探移动前端开发04】jQuery Mobile (中)

    前言 昨天我们一起学习了一部分jquery mobile的知识,今天我们继续. 这些是些很基础的东西,有朋友觉得这个没有其它的好,但是学习下不吃亏嘛,我反正也不会一起学习基础啦. 例子请使用手机查看哦 ...

  10. 【锋利的jQuery】学习笔记04

    第四章 jQuery中的事件和动画 一.jQuery中的事件 加载DOM 在JS中等待页面加载完成通常使用window.onload方法,而在jQuery中则使用$(document).ready() ...

随机推荐

  1. B-树(B树)详解

    具体讲解之前,有一点,再次强调下:B-树,即为B树.因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解.如人们可能会以为B-树 ...

  2. tty

    tty一词源于Teletypes,或teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘和显示器取代,所以现在叫终端比较合适. 终端 ...

  3. 【Nuxt】配置路由

    export default ({store, redirect} => { if (!store.state.username) { redirect('/') } }) vuex 代码处理请 ...

  4. jsonp简介

    jsonp主要是利用script的跨域.简单点说就是像img,css,js这样的文件是跨域的,这也就是为什么我们能够利用cdn进行加速的原因.而且像js这样的文件,如果里面是一个自执行的代码,比如: ...

  5. Java 计算两个日期相差月数、天数

    package com.myjava; import java.text.ParseException; import java.text.SimpleDateFormat; import java. ...

  6. 51nod--1079 中国剩余定理

    题目: 1079 中国剩余定理 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K ...

  7. Haystack-全文搜索框架

    Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...

  8. 还在期待安卓9.0吗?Android 10.0要来了

    目前,美国 Google公司的 AndroidP (安卓9.0),已经正式全面推出有几个多月了.众多手机品牌厂商也都在积极的进行更新适配 Android 9.0 系统(修改UI界面也算是二次开发,嗯) ...

  9. ssm实现图片上传

    在使用ssm完成前后端对接时,总免不了前台传过来的文件问题,而html中的<input>框直接使用时,往往会获取不到路径,今天在完成图片上传后的来做个总结 首先,前台页面 <!DOC ...

  10. cf55D 数位dp记忆化搜索+状态离散

    /* 漂亮数定义:可以整除任意数位上的数 求出区间[l,r]之间的漂亮数个数 因为 dp[i][j][k]:i位前模lcm的值是j,i位前lcm是k的漂亮数个数 */ #include<bits ...