jquery基本知识要点

  调试小招:a.通过看浏览器的netWork下的请求头,如果jquery引用出错报404错误
                      b.不论是js还是jquery里面的,均可以先用alert()进行调试,然后再用debug模式
                      c.js里面只要有一个地方错了,页面就可能显示不出来。
    重点:jQuery函数汇总加载dom对象
         1.$(document).ready(function(){});
         2.$().ready(function(){});
         3.$(function(){});
    1.jquery库有完整版如jquery-1.6.js(无压缩、用于测试和学习)和jquery.min.js(压缩版、体积小、用于项目和产品)
    2.使用jquery,需先在页面上引用jquery库<script type="text/javascript" src="../jquery.js"></script>
    3.jquery对象与dom对象转换
          dom下的取值有三种形式:id、name、tagname;
          分别是:document.getElementById('id'); document.getElementsByName('name'); document.getElementsByTagName('tagName');
      id选择器
      a.dom对象取值 eg:var td40=document.getElementById('td_04');
          b.jquery对象取值 eg:var td41=$('#td_04');  
          c.从dom对象转到jquery对象 eg: var td4=document.getElementById('td_04'); var $td4=$(td4);
    4.引入多个js库,如prototype、Base库等,有冲突了怎么解决
      4.1  如果jquery是在它们之前引入,那么“$”的所有权将归Base库使用,可以直接用Jquery对象调用,也可以创建一个“$$”给jQuery,则不存使用JQuery.noConflict()方法
           <script type="text/javascript" src="jquery.js"></script>    
           <script type="text/javascript" src="prototype.js"></script>          
           <script type="text/javascript">
                var $$=jQuery;   //创建一个$$jquery对象
                $(function(){}   //这里的“$”是Base对象
                alert($('#box').get(0));    //这里是Base对象
                alert($$('#box').width());  //这里是Jquery对象
           </script>
      4.2  如果jquery是在它们之后引入,那么“$”的控制权就将归jquery了。
               jQuery.noConflict();  //将$符所有权剔除
               var $$=jQuery;
               $(function(){
                  alert($('#box').get(0));
                  alert($$('#box').width());
              });
    5.选择器(常用:id、.class、标签)
      5.1 id选择器
          var id04=$("#id_04");  //相当于document.getElementById("id_04");
      5.2 class选择器
          var id04=$(".id_04");  
      5.3 标签选择器(元素选择器)
          var p1=$("p");
      5.4 层次选择器
         a.形式:$("parent>child");                     //选择parent元素里面的集合元素     eg:$("div>p").css("background-color","red");
         b.形式:$("prev+next"); 或$("prev").next();    //取prev元素后的首个next集合元素     eg:$(".one+div")或$(".one").next("div");  
         c.形式:$("pre~silings");或$("prev").nextAll();//取prev元素后的所有元素         eg:$("#two~div")取id为two元素后的div兄弟元素
         d.形式:$("prev").siblings()                   //取prev元素的所有同集合元素辈元素  eg:$("#prev").siblings("div")取所有与prev后面div同辈元素,无论前后位置
      5.5 过滤选择器
       基本选择器
         a.:first          //选择第一个元素               eg:$("div:first");
         b.:last           //选择最后一个元素             eg:$("div:last");
         c.:not(select)    //去除与给定选择器匹配的元素   eg:$("input:not(.myclass)");  //选择class不是myclass的input元素
         d.:even           //取索引是偶数的元素               eg:$("input:even");
         e.:odd            //取索引是奇数的元素               eg:$("input:odd")
         f.:eq(index)       //取索引等于index的元素            eg:$("input:eq(1)");
         g.:gt(index)       //取索引大于index的元素,集合元素索引都从0开始计算
         h.:lt(index)       //取索引小于index的元素
         i.:header          //取所有标题元素
         j.:animated        //取当前正在执行的动画的元素
        内容过滤
         a.:contains(text)  //取内容为text的元素
         b.:empty           //取不包含子元素或文本的空元素
         c.:has(select)     //取含有选择器匹配的元素的元素
         d.:parent          //取所有子元素或文本元素
        可见过滤
         a.:hidden          //取所有不可见的元素
         b.:visible         //去所有可见的元素
        属性过滤器
         a.[attribute]         //取此属性的元素     eg:$("div[id]");
         b.[attribute=value]   //取等于value的元素  eg:$("div[title=test"]);
         c.[attribute!=value]  //
         d.[attribute^=value]  //取值以value开始的元素
         e.[attribute$=value]  //取值以value结束的元素
         f.[attribute*=value]  //取值含有value的元素
        子元素和表单属性过滤
      5.6 表单选择器
         a.:input             //所有的<input><textarea><select>和<button>元素
         b.:text              //所有文本
         c.:password          //所有密码框
         d.:radio             //所有单选框
         e.:checkbox          //所有多选框
         f.:submit            //所有提交按钮
         g.:image             //所有图像按钮
         h.:reset             //所有取消按钮
         i.:file              //所有上传的元素
         j:hidden             //所有不可见的元素
    DOM操作
      1.查找节点和创建节点
         var $li=$("ul li:eq(1)");  //取出ul中的第二个节点,然后用attr()方法来获取各种属性
         $(HTML)来创建  
            eg:var $li_1=$("<li></li>");
                var $li_2=$("<li></li>");var $parent=$("ul"); //创建<li>和<li>的父节点<ul>
                $parent.append($li_1); $parent.append($li_2); //将<li>元素添加<ul>节点 也可采取链式写法:$parent.append($li_1).append($li_2);
      2.插入节点
         a.append()          //在被选元素的后追加内容                                           eg:$("p").append("<b>hello</b>");
         b.appendTo()        //是append的逆用,将内容(必须用HTML包起来)追加到被选元素上       eg:$("b>hello</b>").appendTo("p") 结果<p><b>hello</b></p>
         c.prepend()         //在被选元素前追加内容                                             eg:$("a").prepend("<a href='#'>prepend<a>");
         d.prependTo()       //prepend()的逆用,将内容(必须用HTML标签包起来)                   eg:$("<a href='#'>prependTo</a>").prependTo("a");
         e.after()           //在被选元素的后面追加内容            A.after(B)参数B被追加到A的后面
         f.insertAfter()     //after的逆用                         A.insertAfter(B) AB位置调换
         g.before()          //被选元素前加内容
         h.insertBefore()    //before的逆用
                    
      3.删除节点
         a.remove()     //删除被选择元素以及子元素
         b.empty()      //清空节点(删除子节点),不删除被选节点

      4.克隆和替换     
         a.clone()        //克隆                                       eg:$("p").append($("a"))   
         b.html()         //替换被选元素的内容(不含被选元素)         eg:$('#div1').html('<a>Hello World</a>');  
         b.replaceWith()  //替换被选元素以及子元素                     eg:$("#div1").replaceWidth("Hello World");
         c.replaceAll()   //replaceWith的逆用,必须用标签将内容包起来  eg:$('<a>Hello</a>').replaceAll('#div1');  
      5.包裹节点
         a.wrap()         //用指定的标签将被选元素包裹起来                 eg:$("li").wrap("<div></div>"); //给每个a标签选择器加div层
         b.wrapAll()      //用指定的标签在被选元素最外侧包围一次           eg:$("li").wrap("<div></div>"); //最外围加一个div标签
         c.wrapInner()    //说是给指定的标签的内容加标签   --失败,与wrapAll()一样,在li元素一组结束后放一个如a标签就显现出不同了,wrapAll会将a移到最尾不加div
      6.属性操作
         a.attr(key);                             //获取元素属性值      eg:var title=$("ul li:eq(1)").attr("title");               //获取下标为1(第二个)li元素title属性值
     b.attr(key,value);                  //设置单个元素属性    eg:$(".td_13").attr("width","80px");                       
         c.attr({key:value,key2:value2,……})     //设置多个元素属性    eg:$(".td_13").attr({width:"23px;",height:"50px;",……});  
     d.attr(key,function(){//代码})              //为所有匹配的元素设置一个计算的属性值        eg:$("ul li:gt(1)").attr("title",function(){ alert("pink"); }) //操作已有的属性,与css不同   
         e.removeAttr(key);                       //移除某个属性                                    eg:$(".td_13").attr("title");  
      7.样式操作
         a.attr()                          //获取样式            eg:var td_13 = $("td_13").attr("class");
         b.attr();                         //设置样式            eg:$("td_13").attr("td_13","td_04");    //更新样式               
         c.addClass()                      //添加样式            eg:$("td_17").addClass("td_17 td_13");  //可一个或多个,【验证下】
         d.removeClass()                   //移除样式            eg:$("td_17").removeClass();            //可指定,不指定则是全部移除
         e.toggleClass()                   //切换样式            eg:$("#td_17").toggleClass("td_13");    //本身没有这个样式则添加,有这个样式则是删除
         f.hasClass()                      //判断样式是否存在    eg:alert($("td_17").hasClass("td_13")==$("td_17").is("td_041")); //为true 单个都是false
      8.CSS-DOM操作
         a.css();                    //获取css属性值       eg:var  td_17_color=$(".td_041").css("color");    $(".td_13").height();  //若没有设置则是默认的高度,设置了200,实际198.
         b.css(key,value);           //设置单个css属性     eg:$(".td_13").css("color","blue");     //设置单个css属性
         c.css(key,value,……)       //设置多个css属性     eg:$(".td_13").css({"color":"blue","background-color":"white",……});  //注意与attr想区别attr中key不带引号
         d.css(key,function(){})     //设置function设置    eg:$(".td_10").css("color",function(){ return "red"})  //与attr不同,这里可以增加设置样式,而attr则是设置修改已经存在的属性。
         e.offset()                  //获得元素在当前视窗的偏移量(上下)    eg:$(".td_13").offset(); alert("offset="+offset+"\noffset.left="+offset.left+"\noffset_top="+offset.top);
         f.position()                //与offset类似 测试的结果值是一样的     eg:var position =$("ul li:gt(1)").position(); alert("position="+position+"\nposition.left="+position.left+"\nposition.top="+position.top);
         g.scrollTop() scrollLeft()  //当前元素滚动条距顶端/左侧的距离       eg:alert($("#td_17").scrollTop()+"\n"+$(".td_10").scrollLeft());
     
     小结:1.height()与css()方法获得的值是有区别的,前者是不带单位的,后者是单位的
           2.atr()与css()区别,前者都可以设置的,id,name,type ,title,class,style等,后者只是针对css样式,css样式中有“-”,换成驼峰式如font-size变成“fontSize”
              eg:1.alert($("#tab").attr("style","width:400px;background-color:pink;align:center"));       //这是针对stytle的,若是属性则样子与css一样
                 2.alert($("#tab").css({"padding":"5px","background-color":"#98bf21","fontSize":"48px"}));
     9.设置和获取HTML文本和值
       1.html()       //获取页面的HTMl页面元素和文本信息,类似于js中的innerHTML属性,html不能用于xml文档
           2.text()       //获取页面上的text文本,类似于js和xml中的innerText属性【js效果没测出来】  
       3.val          //类似于js中的value属性,这里对于表单元素可以使用val()方法获取或设置元素值  eg:alert($("#sex1").val="HE");      $(":text").val("HelloWorld");           
     10.遍历节点
           a.pre()        //匹配元素前紧邻的同辈元素   eg:alert($(".td_13").pre().attr("style","width:100px;height:200px;background-color:green"));
           b.next()       //匹配元素后紧邻的同辈元素   eg:alert($("div").next().attr("background-color","pink"))
           c.siblings()   //取得匹配元素前后的所有同辈元素                eg:alert($("p").siblings().css({"color":"blue","fontSize":"48px"}));
           d.children()   //用来取得匹配元素的所有子元素,不考虑后代元素  eg:alert($("p").children().css("color","red"));
           e.closest()    //用来取得最近的匹配元素
           f.find()       //在被操作的元素内部查找元素 eg:var $find = $("div").find(".td_13"); alert($find.html());
           g.filter()     //在被操作的元素自身找匹配的元素  eg:var $filter =$("div").filter(".td_13"); alert($filter.html());
       h.prev()       //当前元素的前一个元素   eg:$(this).prev().css("background","blue"); //当存在两个或两个以上元素时,匹配当前元素的前一个元素
     11.事件、效果和动画
           1.事件绑定 bind[解绑 unbind]、on[解绑 off]、delegate[undelegate]、click [解绑 unbind]  四种bind与click可行,另外的on、delegate无效
               形如:$("a").bind('click',function(){alert("ok");}); //事件绑定 点击a标签上的字出现提示框
                   $("p").unbind("click",function(){alert("ok pp");}); //事件解绑
           2.各类事件
        ready()  //文档就绪时的事件 a.$(document).ready(function(){});b.$().ready(function(){});c.$(function(){})  
            focus()  //聚焦   
                blur()   //失去焦点,这一组主要是针对input类型而言的
                change() //当输入域发生改变时触发
                click()  //当点击时触发
                dblclick() //双击按钮时触发
                error()    //就是挽救的方法,如图片加载不了替换成文本 eg:$("img").error(function(){ $("img").replaceWith("<p>服务器维护中……</p>");});
                keyup()    //针对input类型的,当按下复位的时候触发
                keydown()  //针对input类型的,当按下的时候触发
                keypress() //按键时触发
                mousedown()    //鼠标点击时触发
                mouseenter()   //鼠标划过时触发
                mooseleave()   //鼠标离开的时触发
                mousemove()    //鼠标在作用范围内移动时触发
                moueseout()    //鼠标离开时触发,经常与mouseover()一起用
                mouseover()    //鼠标移至元素上时触发
                mouseup()      //鼠标松开时触发
        resize()       //调整浏览器窗口大小 实践没看到效果
                scroll()       //滚动时触发  样式voerflow:scroll
                select()       //选择操作时触发
                submit(0       //表单提交事件
                load()         //加载事件,但在火狐和IE,如果有缓存可就不允许加载了

           3.效果
            a.show()  //显示
            b.hide()  //隐藏
            c.toggle(speed,callback,switch)    //元素可见和隐藏设置有两种 1.speed(单位毫秒,默认不写的0);2.switch(true显示,false隐藏)
            d.slideUp(speed,callback)   //元素隐藏  eg:$("#td_13").slidUp(2000,setDateTime()); function setDateTime(){var Date = new Date() alert(date);}
            e.slideDown(speed,callback) //元素显示
            f.slideToggle(speed,callback) //上下滑动切换可见与隐藏
            g.fadeIn(speed,callback)      //元素淡入即慢慢出现,显示
            h.fadeOut(speed,callback)     //元素淡出即慢慢消失,隐藏
            i.fadeTo(speed,opacity,callback) //元素可见度减弱至opacity  eg:$("#typing").fadeTo(3000,0.1,setDateTime());
             动画:animate(style,speed,easing,callback)  //eg:$("p:eq(0)").animate({textIndent:"20px"},3000,setDateTime());  easing(函数)有swing和linear报错
                   stop(stopAll,stopEnd);         stop(true)停止所有动画,stop(true,true)在当前动画执行完后停止动画

            HTMl元素
                 padding:是自身体积变大,撑大了
                 margin:是相对于一个位置的距离
                 letterSpacing:字符间距(字母即是单个字母,中文即是文字),正值增大,负值缩小   //letterSpacing与wordSpacing实践没效果
                 wordSpacing:拉开一个词的距离
                 lineHeight:行高
                 textIndent:首行缩进
           
        总结Jquer属性操作:
             a.addClass();  //向匹配的元素添加class样式,可添加多个
             b.attr()       //设置匹配元素的属性和值
             c.hasClass()   //检查是否拥有指定的类
             d.html()       //设置或返回匹配元素的HTML内容,与dom中的innerHTML一样的
             e.removeAttr() //从匹配的元素中移除指定的属性
             f.removeClass()//从匹配的元素中移除指定的class样式,没有指定则是全部移除
             g.toggleClass()//从匹配的元素中添加或移除class样式,没有则是添加,有则是删除
             h.val()        //从匹配的元素设置或返回指定的内容  
             i.prop()       //检查是否存在该属性,如判断是否存在disabled,有则返回true,否则false


     12.表单和表格

     13.ajax
     浏览器端:参数
          头信息(请求头和请求头信息) 内容长度、内容类型、时间、服务器、能接受的编码、能接受的语言、cookie等
          响应
          Cookies 名称JSEESSIONID,

ajax学习(一)
ajax (Asynchronous JavaScript and XML 异步的javascript和xml)
    ajax是一种快速创建动态的网页技术,通过在后台与服务器进行少量的交换数据,在不用重载整个页面的情况下对页面的一部分进行更新。
    jquery对ajax作了封装,兼容各大浏览器,其中$.ajax()是最低层的方法,第2层是$.load()、$.get()、$.post(),并且get和post方法是全局函数,第
三层是$.getScript()和$.getJson()方法
   常用方法学习
  1.$.ajax()   //执行异步ajax请求
  <script type="text/javascript" >
    $(document).ready(function(){
        $("#start").click(function(){
            $.ajax({url:"foot.jsp",success:function(result){
                $("#showStar").html(result);
            }});
        });
    });
</script>
<p><button id="start">Start Animation</button>
<table background="pink">
    <tr id="showStar"><td>☆</td><td>☆</td><td>☆</td><td>☆</td><td>☆</td></tr>
</table>

 ajax方法常用参数列表
(1.url:String类型的,用于发送请求的地址的,默认是当前页
(2.type:String类型的,请求方式(GET或POST),默认是Get
(3.Data:Object和String类型,规定要发送到服务器的数据。Get请求中将附加在URL后,如果不是字符串将自动转换为字符串格式。对象必须是key—value格式
(4.dataType:String类型,预期服务器响应的数据类型。如果不指定,Jquery将自动根据Http包的Mime信息返回responseXML和responseText,作为回调
         函数传递。可用的类型有XML/html/script/json/text
(5.success(result,status,xhr):function  请求成功时运行的函数,有两个参数,a.由服务器返回的dataType指定的数据;b.描述状态的字符串。
(6.Async:Boolean类型,是否异步提交,为true时异步,false时同步提交。
(7.Complete:function,请求完成后调用的回调函数(成功或失败时均调用),参数是XMLHttpRequest对象和一个描述成功请求类型的字符串。
(8.Error(xhr,status,error):function,请求失败时调用的函数,有三个参数,a.XMLHttpRequest对象;b.错误信息textStatus;c.捕获的错误errorThrown对象。

  2.$.get(url,data,function(data,status,xhr),dataType)  //使用Http Get请求从服务器加载数据
  <script type="text/javascript" >
    $(document).ready(function(){        
        $("#start").click(function(){
            $.get("foot.jsp",function(data,status){
                $("#showStar").html("数据: "+data+" \n状态:"+status);
            });
        });
    });
   </script>

  get方法参数列表
(1.url:请求的路径,必须。
(2.data:规定连同请求发送到服务器的数据,可选
(3.function(data,status,xhr)可选,规定定请求成功时运行的函数
    a.data:请求的结果数据
    b.status:请求的状态(success、notmodified、error、timeout、parsererror)
    c.xhr:XMLHtttpRequest对象
(4.dataType:规定预期的服务器响应的数据类型,可选,Jquery能智能判断属于xml、html、text、script、json、jsonp

  3.post(url,data,function(data,status,xhr),dataType)
   <script type="text/javascript" >
    $(document).ready(function(){        
        $("#start").click(function(){
            $.post("../manager/login.jsp",
              function(data,status){
                $("#showStar").html("数据: "+data+" \n状态:"+status);
            });
        });
    });
   </script>
  post方法参数列表
 (1.url:规定将请求发送到哪个URl,必须
(2.data:连同请求发送到服务器的数据,可选
(3.function(data,status,xhr)
 (4.dataType:规定预期服务器响应的数据类型

  4.load(url,data,function(response,status,xhr))  //从服务器加载数据,并把返回的数据放置到指定的元素中
   <script type="text/javascript" >
    $(document).ready(function(){        
        $("#start").click(function(){
            $("#showStar").load("foot.jsp");
        });
    });
   </script>
 
  5.getScript(url,success(reponse,status))  //使用ajax的Http GET请求获取和执行javascript
  <script type="text/javascript" >
    $(document).ready(function(){        
        $("#start").click(function(){
            $("#showStar").getScript("login.js");
        });
    });
   </script>
    getScript方法参数列表
  (1.url:将请求发送到哪个url,必须
  (2.success(reposonse,status):规定请求成功时运行的函数,可选
     a.request:包含请求的结果数据
     b.status:参见get方法status的五种状态

  6.getJSON(url,data,success(data,status,xhr))  //使用ajax的Http GET方法获取JSON数据    
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值