java学Web——day05【JQuery日常心得与知识汇总】

【前言】

    今天的JQuery不多操作是很难理解的。原本是冲着做狂帅酷炫叼炸天的JQ特效来的。结果飘逸的特效没有学到,反而撩到一个更难的JS升级版的代码。原来敲JS还是做得爽歪歪,代码是多了点,可是逻辑走得通。但是感觉JQuery一句代码走了好几步逻辑,总是不容易理解。
    不过永远只有难却好用的东西能够吸引程序员的注意。大概是“因为你不会我会”的感觉。
 
    提一个问题:是JQ还是JS?JQeuery是JS的一个封装库,相当于Spring是Java的其中一个框架。据我所知,目前JQ实际上是一个三四年前的技术,并不算新。现在国内流行的是Vue.js,是国内一个JS大佬开发,相当于支持国货吧。世界范围流行的是Node.js,适合用于做服务器端;另外还有一个来自FaceBook免费提供的开源JS项目React.js,这个js库受人追捧的原因是,脸书作为拥有世界上最多用户的社交平台,其宣称公司研发的产品所用的js库都是自家开发的这个React.js。试想,脸书作为拥有世界上最多用户的平台,它所承受的流量压力也是最大的。我们在开发一款软件的时候,总是担心所使用的开发工具(开发语言)性能不够好,承受不住任何异常情况。基于这样的想法,大家就觉得React.js是一个优秀的js库。最后还有一个Rngular.js。不了解,暂且mark一下。
    

   扯远了,想说JS不仅仅是一个前端语言,在服务端上也能发挥很好的作用。


【正文】

   总结一下今天的知识:往后面的案例在理解上越来越难。先把以下几点基础知识掌握一下。
   

   一、选择器

   JQ的焦点还是放在选择器上面。其中要掌握或了解的是以下五大方面的选择器。
   
   1.九大基本选择器(掌握):id选择器("#id名"),类选择器(".类名"),元素(标签)选择器("标签名"),通配符选择器("*"),并列选择器("#div1,.div2,p");后代选择器(#div p),儿子们选择器(#div>p),大儿子选择器(#div~p) 大弟弟选择器(#div+p)等九大基本选择器;
   
   2.过滤元素选择器方面(有印象),有奇数("#div p:odd") 偶数("div p:even"), 索引("div p:eq(2)")(得到第3个元素,是从0开始算的),首位("#div p:first"),末位("#div p:last"),包含($("p:contains(is)"))等选择器。这个做案例"表格间隔变色"用到啦
   
   3. 属性选择器两个(掌握):
     1).$("img[src]"):含有某个属性的选择器。
     2).$("img[src = 'img/a.jpg']"):含有某个属性值src = "img/a.jpg"的选择器
   
   4.表单选择器(格式记得):
     1).$(":checkbox") 所有的多选框
     2).$(":checkbox[name='selectBox']") name属性值为selectBox的多选框。
     其他的表单选择器都是按照这个格式

   二、理解什么是JQ对象:
     
      先了解一下$("")或者Jquery()这个JQ对象。
     
     1).$("")这个对象返回的值总是数组,不过你是用id选择器$("#div1")得到一个对象,或者类选择器$(".div1")得到了多个对象,$()它返回的都是一个对象数组。不是单个变量。
     因此,就有了JQ对象$("")转换成js对象的两种形式:
       [1].var div1 = $["#div1"][0];
       [2]. var div2 = $["#div2"].get(0);
     
     2) $(function{}):这个相当于js中的window.onload(function{});两者都是网页文档加载就能触发事件。但是js的onload只能声明一次,而JQ的$(function{})能用多次。
     
     3) JQ除了"学的少,用得多"的宗旨,还有一个比较重要的特点是能实现启动事件与Html代码分离。使用JS总要在HTML代码中添加启动事件onload = "JS函数名([参数可选带入])"。然鹅使用JQ:直接在加载文档事件中对可能启动事件的标签绑定事件即可:
     比如案例"省市联动的JQ版制作中":
$(function()
{
   $("#province").change(function(){});
 });
这个就直接在文档加载后,对省份下拉框绑定了onChange事件。
    

   三、JQ对象的文档处理

     JQ对象的文档处理工作主要表现在两方面:
     一是对标签属性的增加,获取,删除,修改处理
     二是对标签的增加,获取,删除,修改处理
     
     1.对属性的处理:
     1).获取:$src = $("#img").attr("src");
     2).修改:$("#img").attr('src','../img/p2.jpg'); 
     3).增加:$("#btn").attr('disabled','disabled');       //增加多个属性:$("#w3s").attr({ "href" : "http://www.w3school.com.cn/jquery", "title" : "W3School jQuery Tutorial });
     4).删除:$("#text").removeAttr('style');

     2.对标签处理:
       
     1)获取:$("选择器类型")
     2)添加:append():$("a").append("<p>我是文字</p>");//在a标签里面插入p标签
            appendTo();将一个元素移到另外一个元素后面: $("<img src ='../img/p1.jpg'/>").appendTo("a");把img标签插入到a标签后面
     3)删除:$("#link").remove();//自杀删除。所选元素和子元素全没了


     另外记住下面三个函数
     text() - 设置或返回所选元素的文本内容 
     html() - 设置或返回所选元素的内容(包括 HTML 标记) 
     val() - 设置或返回表单字段的值 (表单专用)
  
     上面贴了一些自测的代码,有的方法明明知道,但是不会用。是因为缺少亲自测试。
   

   四、在JQ中的两种遍历:   

     1.$.each(arrs,function(i,m));// 第一种:each()参数两个型:arrs表示一个数组,i是索引值,m是arrs[i]的值
     2.$(arrs).each(function(j,n));    // 第二种:each()参数一个型
     
     3.二维数组都可以当作一维数组来使用:
       $.each(cities, function(i, n) 
       {
{$(n).each(function(j, m) {$city.append("<option>" + m + "</option>");});
     
     4.遍历不止于数组,可以对一个列表遍历:
 $("li").each(function(){
    alert($(this).text())
  });
});
  

  五、简单总结:

    回顾上面的知识后,对今天的五个案例做一下思路上面的整理:
    1.案例1:使用JQ完成页面定时弹出广告:
      1).利用setInterval和cleanInterval组合,配合一组动画效果(显示show(millTime),hide();淡入淡出fadeIn(),fadeOut;移上移下slideDown()sildeUp())即可完成
      2).使用setTimeOut()只执行一次更加简便
     
    2.案例2:表格隔行换色:
      获取表格的身体部分<tbody> 运用奇数偶数选择器$("tbody tr:odd").css("color":"颜色值");即可完成
      
    3.案例3:表格多选框的全选和全不选:
      1)对总控制多选框设置id="allSelect" 其他子多选框设置id = "select" JQ对象获取分别获取:$("#allSelect"),$("#select")
      2)给总控制多选框绑定点击事件 $("#allSelect").click ="function(){}".
      3)获取它的属性checked: $("#allSelect").attr("checked")判断:
      4)依照判断结果对子选择款设置checked属性: 
      true: $("#select").attr('checked','checked');
      false:$("#select").attr('checked','') 

   4.案例4:省市联动JQ版选择框:
      1.分别获取省级选择框$("#province"),$("city");
      2.对省级选择框绑定onChange事件:$("#province").onChange(function(){});当省级框的<option>发生改变时候,就可以调用这个事件,然后var val = this.value;获取当前option的value值
      3.根据val值遍历预先设置好的cities城市数组,显示的结果是cities[val]。
      4.city.append(cities[val]);
      5.做city清空前面已经存在的<option>项

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值