zoukankan      html  css  js  c++  java
  • JQuery真的很牛 (一)

    JQuery简介
    一:普通的JavaScript的缺点是:每种控件的操作方式不统一,不同浏览器下有区别,要编写跨浏览器的程序非常麻烦。因此出现了很多对JavaScript的封装,比如Prototype ,Dojo  ,ExtJS   ,JQuery 等,这些库对JS进行了封装,简化了开发。这些库是对JS的封装,也就是咱们调用JQuery的一句话,而在JQuery内部这句函数就帮我们调用Js中的代码几十句,因为JQuery就是JavaScript语法写的一些函数类,内部仍然是调用JavsScript实现的,所以并不是代替JavaScript的。使用JQuery的代码,编写JQuery的扩展插件等仍然需要JavaScript的技术,JQuery本身就是一堆JS函数。
    二:它能做做呢?尺寸小,使用简单方便(Write Less Do More)链式编程($("#div1").Draggble().hide().fly())隐式迭代(自动对于多个元素进行迭代方法调用),屏蔽浏览器差异兼容性好(IE6.0+ ,FF2+ ,Safari 3.0+  ,Opera9.0+  ,Chrome )   插件丰富,开源,免费。在这几个中JQuery-1.4.1-Vsdoc.js是在输入东西时自动提示功能效果。

    JQuery是最火的JavaScript库,已经被集成到VS2010了,得到了MS的支持,
     
                                     第一部分:简单的JQuery 
    一:$(document).ready(function(){加载完毕!});——简写方式[$(function(){alert("加载完毕!");});]   在JQuery中注册事件的函数,和普通的Dom不一样,不需要在元素上标记onload  onclick  onclientclick等东西了。

    二:和onload类似,但是onload只能注册一次是这样写的(window.onload=function(){alert("加载完毕!")})如果写多个这样事件的话也只能执行最后一个它没有C#中的+=机制,后注册的取代先注册的,而ready则可以多次注册都会被执行。
    三:JQuery的ready和Dom的onload的区别:onload是在所有Dom元素分明建完毕,图片,Css等都加载完毕后才被触发,而ready则是Dom元素创建完毕后就被触发,这样可以提高网页的响应速度。在JQuery中也可以用$(window).load()来实现onload那种事件调用的时机。
    三:JQuery提供的一些函数:
    $.map(arr,fn);是对数组arr中每个元素调用fn函数逐个进行处理,fn函数将处理返回,最后得到一个新数组。
    例子,得到一个元素值是原数组值二倍的新数组
     var array=[2,3,4];
       var arr=$.map(array,function(item){ return item*2;});
       alert(arr);

    但是$.map()不能处理Dictionary式的数组可以用到$.each(dic,value)函数。
    var dic={"tom":23,"jery":22};
       $.each(dic,function(key,value){alert(key+"的年龄是"+value);});
    当然也可以用$.each()处理一般的数组不过也要写上key and value 如下:
    var array=[2,3,4];
       $.each(array,function(key,value){alert(key+"="+value);});
    其结果为:0=2,1=3,2=4.
    但是若只用Item 时就会只显示key的值,这对于我们来说没有什么意义。

    也可以取到value这时可以用不带参数的function()而在后面用this关键字就可以啦如下

    var array=[2,3,4];
       $.each(array,function(){alert(this);});结果为:2,3,4。
    当用关键字this 时用Dictionary也是显示它的值如下:

    var dic={"tom":23,"jery":22};
     $.each(dic,function(){alert(this);});
    结果为:23,22.

                                    第二部分:JQuery对象,Dom对象

    1):
    JQuery对象就是通过去时JQuery包装Dom对象后产生的对象:
    alert($('#div1').html()) 。 Dom对象要想通过JQuery进行操作,先要转换为JQuery对象。如:
    <head>
        <title></title>
        <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function () { alert($("#div1").html()); });
        </script>
    </head>
    <body>
    <div id="div1">你好呀<font color="Red">朋友</font></div>
    </body>
    【注意】Array是JS语言本身的对象,不是Dom对象,因此不需要转换为JQuery对象才能用

    2):
    $("#div1").html()等价于:document.getElementById("div1").innerHTML;
    $("#div1")得到的就是JQuery对象,JQuery对象只能调用JQuery对象封装的方法,不能调用Dom对象的方法,Dom对象也不能调用JQuery对象的方法,所以alert($("#div1").innerHTML);是错的,因为innerHTML是DOM对象的属性。

    3):
    将Dom对象转换为JQuery对象的方法,$(dom对象);当调用JQuery没有封装的方法的时候必须用Dom对象,转换方法:var domobj=jqobj[0]或者var domobj=jqobj.get(0);例子如下:
    $(function (){var div1=document.getElementById("div1");$(div1).html();});

    4):
    JQuery修改样式:$("#div1").css("background","red");获得样式:
    $("#div1").css("background");修改value:$("#txtname").val("abc");获得value:$("#un").val();类似的还有获得设置innerText,innerHTML用text()和html()。

                                      第四部分 JQueru选择器


    1):
    JQuery选择器用于查找满足条件的元素,比如可以用$("#控件id");来根据控件id获得控件的JQuery对象,相当于getElementById();
    2):
    $("TagName");来获取所有指定标签名的JQuery对象,相当getElementByTagName
    :例子如下:
    <script type="text/javascript">
           // $("p").click(function () { alert("你点我了!我是"); })这句是不能执行的,因为在此时dom元素还没有加载完毕,这和在dom中把初始化事件放到onload事件中是一样的。
            $(function () { $("p").click(function () { alert("你点我了!我是"); }) });这也是一种隐式迭代,给所有的选择出来的元素增加click事件响应。

    3)Css选择器。同时选择拥有相同样式的多个元素:例子如下
    先自己随便写一个样式:
     <style type="text/css">
        .test{background-color:Red}
        </style>
    再定义几个元素:
    <p class="test">abc</p>
    <p class="test">节能</p>
    <p class="test">sdkfsldkfjsdlf</p>
    再小试一把就OK啦:
     $(function () { $(".test").click(function () { alert($(this).text()); }); });

    4):多条件选择器:$("p,div,span.menuitem"); 同时选择p 标签,div标签和拥有menuitem样式的span标签。注意选择器表达式中的空格不能多也不能少。容易出错!!
    层次选择器:(1)$("div li") 获得div下的所有li 元素(后代 子 子的子的所有的li 标签只要是在本div中的)
       (2):$("div>li") 获得div下的直接li子元素。
       (3):$(".Testcss+div")获得样式名为Testcss之后的第一个div元素;
       (4):$(".Testcss~div")  获得样式名为.Testcss之后所有的div元素;

  • 相关阅读:
    你真的会写二分查找吗
    深入理解C++对象模型
    python监控ip攻击,服务器防火墙
    python操作redis
    python操作mysql
    jmeter_linux下运行
    chales抓包,模拟异常情况
    python正则表达式
    python-笔记(六)模块操作以及常用模块简介
    fpython-笔记(五)装饰器、匿名函数
  • 原文地址:https://www.cnblogs.com/haofaner/p/2380714.html
Copyright © 2011-2022 走看看