JQuery笔记

JQuery进行常见网页效果开发

JQueryJavaScript的封装库,屏蔽浏览器差异,跨浏览器兼容性好。

 

注册事件函数

ready() 

dom元素的onload事件类似,但onload只能注册一次(window.οnlοad=function(){…})

(没有C#中的+=机制),后注册的取代先注册的,而ready则可以多次注册都会被执行。

 

JQueryreadyDomonload的区别:

onload是所有Dom元素创建完毕、图片、Css等都加载完毕后才触发,

ready则是Dom元素创建完毕后就被触发,这样可以提高网页的响应速度。

JQuery中也可以用$(window).load()来实现onload事件调用机制。

 

JQuery提供的操作数组函数:

$.map(array,fn)

对数组array中每个元素调用fn函数逐个进行处理,fn函数将处理返回,最后得到一个新数组。$.map不能处理Dictionary风格的数组。

例子:得到一个元素值是原数组值二倍的新数组

var arr=[3,5,9];

var arr2=$.map(arr,function(item){return item*2;});

 

$.each(array,fn)

对数组array中每个元素调用fn函数进行处理,没有返回值。

例子:

var dict = {“tom”:”汤姆”,”jerry”:”杰瑞”,”lily”:”丽丽”};

$.each(arr,function(key,value){alert(key+”=”+value);});

如果是普通风格数组,则key的值是序号。

还可以省略function的参数,这时候用this可以得到遍历的当前元素:

var arr=[3,5,6];

$.each(arr,function(){alert(this);})   //this代表当前元素的value

$.each(arr,function(item){alert(item);});  //item代表当前元素的key(序号)

 

JQuery对象、Dom对象

JQuery对象就是通过JQuery包装Dom对象后产生的对象,

Dom对象要想通过JQuery进行操作,先要转换为JQuery对象。

$(dom对象Dom对象转换为JQuery对象

var domobj = jqobj[0] 或者 var domobj=jqobj.get(0)  JQuery对象转换为dom对象

$(‘#div1’).html()等价于:document.getElementById(“div1”).innerHTML;

 

$(“#div1”).css(“background”,”red”);  // JQuery修改样式

$(“#div1”).css(“background”);      //获得样式

 

$(“#un”).val(“abc”);       //修改value

$(“#un”).val();           //获得value

 

$(“#div1”).text(“abc”);   //修改innerText

$(“#div1”).text();       //获得innerText

 

$(“#div1”).html(“a<font color=’red’>b</font>c”);    //修改innerHTML

$(“#div1”).html ();     //获得innerHTML

 

JQuery选择器

用于查找满足条件的元素。

$(“#控件Id”) :根据控件id获得控件的JQuery对象,相当于getElementById

$(“TagName”) :获取所有指定标签名的JQuery对象,相当于getElementByTagName

 

css选择器

同时选择拥有样式的多个元素。

<style type=text/css>

       .test{background-color:Red}

</style>

<script type=”text/javascript”>

       $(function(){$(“.test”).click(function(){alert($(this).text());});})

</script>

<p class=”test”>test1</p>

<p class=”test”>test2</p>

<p class=”test”>test3</p>

 

多条件选择器

$(“p,div,span.menuitem”) :同时选择p标签、div标签和拥有menuitem样式的span标签。

 

层次选择器

(1)    $(“div li”) 获取div下的所有li元素(包括子代)

(2)    $(“div > li”) 获取div下的直接li子元素

(3)    $(“.menuitem + div”) 获取样式名为menuitem之后的第一个div元素 (不常用)

(4)    $(“.menuitem ~ div”) 获取样式名为menuitem之后所有的div元素(不常用)

 

注意:选择器表达式中的空格不能多不能少。

 

JQuery迭代

如何判断对象是否存在?

JQuery选择器返回的是一个对象数组,调用text()html()click()之类方法的时候其实是对数组中每个元素迭代调用每个方法,因此即使通过id选择的元素不存在也不会报错,如果需要判断指定的id是否存在,应该写:

if($(“#btn1”).length<=0){

       alert(“idbtn1的元素不存在!”);

}

 

节点遍历

next() :用于获取节点之后的挨着的第一个同级的元素。

nextAll() :用于获取节点之后的所有同级元素。

$(“.menuitem”).next(“div”) 获取样式名为menuitem之后的第一个同级div元素

$(“.menuitem”).nextAll(“div”) 获取样式名为menuitem之后的所有同级div元素

点击当前div之后的所有div都变红色

$(“div”).click(function(){$(this).nextAll(“div”).css(“background”,”red”);})

 

siblings()方法用于获取所有兄弟元素

$(“.menuitem”).siblings(“li”)

点击时当前div变红色,其他变白色

$(“div”).click(function(){$(this).css(“background”,”red”); $(this).siblings(“div”).css(“background”,”white”);})

 

链式编程

高亮选中项:给所有有menuitem这个样式的元素添加click监听事件,当click的时候,向被点击的元素添加highlight这个样式,然后从兄弟节点(siblings)中移除highlight风格。

<style type=”text/css”>

   .menuitembackground-color:Yellow;

   .highlightbackground-color:Red;

</style>

$(function(){

     $(“.menuitem”).click(function(){

           $(this).addClass(“highlight”).siblings().removeClass(“hightligh0074”);

});

});

 

基本过滤选择器

:first选取第一个元素。 $(“div:first”)选取第一个<div>

:last选取最后一个元素。$(“div:last”)选取最后一个<div>

:not(选择器)选取不满足选择器条件的元素,$(“input:not(.myClass)”)选取样式名不是myClass<input>

:even :odd,选取索引是奇数、偶数的元素。$(“input:even”)选取索引是奇数的<Input>

:eq(索引序号)、:gt(索引序号)、:lt(索引序号)选取索引等于、大于、小于索引序号的元素。$(“input:lt(1)”)选取索引小于1<input>

$(“:header”)选取所有的h1…h6元素

$(“div:animated”)选取正在执行动画的<div>元素

 

 

属性过滤选择器

$(“div[id]”)选取有id属性的<div>

$(“div[title=test]”)选取title属性为“test”的<div>,JQuery中没有对getElementsByName进行封装,用$(“input[name=abc]”)

$(“div[title!=test]”)选取title属性不为”test”<div>

表单对象选择器:

$(“#form1:enabled”)选取idform1的表单内所有启动的元素

$(“#form1.disabled”)选取idform1的表单内所有禁用的元素

$(“input:checked”)选取所有选中的元素(RadioCheckBox

$(“select:selected”)选取所有选中的选项元素(下拉列表)

 

不仅可以使用选择器进行绝对定位,还可以进行相对定位,

只要在$()指定第二个参数,第二个参数为相对的元素。

$(“ul”,$(this)).css(“background”,”red”);

 

表单选择器

$(“:input”)选取所有<input><textarea><select><button>元素。

$(“input”)不一样,$(“input”)只获得<input>

$(“:text”)选取所有单行文本框。等价于 $(“input:[type=text]”)

$(“:password”)选取所有密码框。

同理还有  :radio:checkbox:submit :image:reset:button:file:hidden

 

 

JQueryDom操作

1.使用html()方法读取或设置元素的innerHTML

   alert($(“a:first”).html());

  $(“a:first”).html(“hello”);

2.使用text()方法读取或设置元素的innerText

  alert($(“a:first”).text());

  $(“a:first”).text(“hello”);

3.使用attr()方法读取或设置元素的属性,对于JQuery没有封装的属性用attr进行操作

  alert($(“a:first”).attr(“href”));

  $(“a:first”).attr(“href”,”http://www.baidu.com”);

4.使用removeAttr删除属性。注意和清空属性(值为空)的区别。

 

动态创建Dom节点

使用$(html字符串)来创建Dom节点,并且返回一个JQuery对象,然后调用append等方法将新创建的节点添加到Dom中。

 var link = $(“<a href=’http://www.baidu.com’>百度</a>”);

 $(“div:first”).append(link);  //显示出来

$()创建的就是一个JQuery对象,可以完全进行操作

 

append方法用来在元素的末尾追加元素。

prepend 在元素的开始添加元素。

after 在元素之后添加元素(添加兄弟)

before 在元素之前添加元素(添加兄弟)

 

删除节点

1.       remove()删除选择的节点

案例:删除ulli中有testitem样式的元素。

 

remove方法的返回值是被删除的节点对象,还可以继续使用被删除的节点。比如重新添加到其他节点下:

var lis=$(“#ulId li”).remove();

$(“#ulId2”).append(lis);

 

2.       empty() 将节点清空

 

3.       替换节点

$(“br”).replaceWith(“<hr/>”); <br/>替换为<hr/>

4.       包裹节点

wrap()方法用来将所有元素逐个用指定标签包裹:

$(“b”).wrap(“<font color=’red’></font>”)  将所有粗体字红色显示

 

样式操作

1.       获取样式attr(“class”)

2.       设置样式attr(“class”,”myclass”)

3.       追加样式addClass(“myclass”)

4.       移除样式removeClass(“myclass”)

5.       切换样式toggleClass(“myclass”) (如果存在样式则去掉样式,如果没有样式则添加样式)

6.       判断是否存在样式hasClass(“myclass”)

设置样式:

$(“#div1”).attr(“class”,”class1 class2”); 两个样式,中间用空格隔开

 

设置过滤器:

<style type=”text/css”>
       body{filter:Gray;}

     …

     .class1{filter:Gray;}

</style>

 

*选择器

$(“body *”) 取得body中所有控件

 

 

RadioButton操作

1.       取得RadioButton的选中值

$(“input[name=gender]:checked”).val()

2.       设置RadioButton的选中值

$(“input[name=gender]”).val([“”]);

$(“:radio[name=gender]”).val([“”]);

注意:val中参数的[]不能省略

$(“:checkbox”).val([“篮球”,”冰球”])

单独设置控件的选中状态,设定checked属性:

$(“:checkbox[value=羽毛球]”).attr(“checked”,true)

 

事件

合成事件hover, (鼠标进入、退出)

hover(enterfn,leavefn)

调用事件对象的stopPropagation()方法终止冒泡

如果想获得事件相关的信息,只要给响应的匿名函数增加一个参数:ee就是事件对象。

调用事件对象的stopPropagation()方法终止冒泡。

$(“tr”).click(function(e){alert(“tr被点击”);e.stopPropagation();});//注意函数的参数是e

 

阻止默认行为:比如超链接点击后会转向新链接、提交按钮默认会提交表单,如果想阻止默认行为只要调用事件对象的preventDefault()方法

$(“a”).click(function(e){alert(“所有超链接暂时全部禁止点击”);e.preventDefault();});

 

发生事件时鼠标的位置:pageXpageY

获得触发事件的元素:target

 

绑定事件:bind()

移除事件绑定:unbind(“click”)则只移除click事件的绑定。

(bind()相当于+= ;unbind()相当于-= ;)

 

一次性事件:one()

 

动画

show()hide()方法会显示、隐藏元素。

toggle()方法在显示、隐藏之间切换

$(“:button[value=show]”).click(function(){$(“div”).show();})

$(“:button[value=hide]”).click(function(){$(“div”).hide();})

 

 

JQuery插件:

JQuery Cookie的使用

Cookie:就是保存在浏览器上的内容,

Cookie的几个特征:

1.Cookie是与域名相关的,所以163.com不能读取baidu.com记录的Cookie

2.一个域名能写入的Cookie总尺寸是有限制的,一般是几千字节。

3.Cookie不是写入以后一定下次能读出来,浏览器可能会定期清除,用户也可能会手动清除。

使用方法:Cookie保存的是键值对

1、  添加对jquery.cookie.js的引用

2、  设置值,$.cookie(‘名字’,’’).   Cookie中保存的值都是文本

3、  读取值,var v = $.cookie(‘名字’)

if($.cookie(“UserName”))

{     //读取上次记录的用户名

          $(“#username”).val($.cookie(“UserName”));

}

$(“#btnLogin”).click(function(){

          $.cookie(“UserName”,$(“#username”).val()); //用户填写的用户名保存到Cookie

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于微信小程序的家政服务预约系统采用PHP语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和客户、员工三个角色的功能。管理员的功能为客户管理、员工管理、家政服务管理、服务预约管理、员工风采管理、客户需求管理、接单管理等。客户的功能为查看家政服务进行预约和发布自己的需求以及管理预约信息和接单信息等。员工可以查看预约信息和进行接单。本系统实现了网上预约家政服务的流程化管理,可以帮助工作人员的管理工作和帮助客户查询家政服务的相关信息,改变了客户找家政服务的方式,提高了预约家政服务的效率。 本系统是针对网上预约家政服务开发的工作管理系统,包括到所有的工作内容。可以使网上预约家政服务的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和客户、员工三个身份。管理员可以管理系统里的所有信息。员工可以发布服务信息和查询客户的需求进行接单。客户可以发布需求和预约家政服务以及管理预约信息、接单信息。 本功能可以实现家政服务信息的查询和删除,管理员添加家政服务信息功能填写正确的信息就可以实现家政服务信息的添加,点击家政服务信息管理功能可以看到基于微信小程序的家政服务预约系统里所有家政服务的信息,在添加家政服务信息的界面里需要填写标题信息,当信息填写不正确就会造成家政服务信息添加失败。员工风采信息可以使客户更好的了解员工。员工风采信息管理的流程为,管理员点击员工风采信息管理功能,查看员工风采信息,点击员工风采信息添加功能,输入员工风采信息然后点击提交按钮就可以完成员工风采信息的添加。客户需求信息关系着客户的家政服务预约,管理员可以查询和修改客户需求信息,还可以查看客户需求的添加时间。接单信息属于本系统里的核心数据,管理员可以对接单的信息进行查询。本功能设计的目的可以使家政服务进行及时的安排。管理员可以查询员工信息,可以进行修改删除。 客户可以查看自己的预约和修改自己的资料并发布需求以及管理接单信息等。 在首页里可以看到管理员添加和管理的信息,客户可以在首页里进行家政服务的预约和公司介绍信息的了解。 员工可以查询客户需求进行接单以及管理家政服务信息和留言信息、收藏信息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值