zoukankan      html  css  js  c++  java
  • jQuery基础知识

    js与jQuery的比较与区别

    js是脚本语言
    jquery是用js开发出来的架构

    1 定位元素
    JS
    document.getElementById("abc")

    jQuery
    $("#abc") 通过id定位
    $(".abc") 通过class定位
    $("div") 通过标签定位

    $("[name=value]")  通过属性查找

    需要注意的是JS返回的结果是这个元素,jQuery返回的结果是一个JS的对象。以下例子中假设已经定位了元素abc。

    2 改变元素的内容
    JS
    abc.innerHTML = "test";
    jQuery
    abc.html("test");

    3 显示隐藏元素
    JS
    abc.style.display = "none";
    abc.style.display = "block";

    jQuery
    abc.hide();
    abc.show();

    abc.toggle();
    //在显示和隐藏之间切换(2012.4.21更新)

    4 获得焦点

    JS和jQuery是一样的,都是abc.focus();

    5 为表单赋值
    JS
    abc.value = "test";
    jQuery
    abc.val("test");

    6 获得表单的值
    JS
    alert(abc.value);
    jQuery
    alert(abc.val());

    7 设置元素不可用
    JS
    abc.disabled = true;
    jQuery
    abc.attr("disabled", true);

    8 修改元素样式
    JS
    abc.style.fontSize=size;
    jQuery
    abc.css('font-size', 20);

    JS
    abc.className="test";
    JQuery
    abc.removeClass();
    abc.addClass("test");

    9 Ajax
    JS
    自己创建对象,自己处理浏览器兼容等乱七八糟的问题,略去不表
    jQuery
    $.get("abc.php?a=1&b=2", recall);
    postvalue = "a=b&c=d&abc=123";
    $.post("abc.php", postvalue, recall);

    function recall(result) {
    alert(result);
    //如果返回的是json,则如下处理
    //result = eval('(' + result + ')');
    //alert(result);
    }

    10 判断复选框是否选中
    jQuery
    if(abc.attr("checked") == "checked")
    注意:网上说的.attr("checked") == true实际上不能用,上面这个测试过能用

    二、语法总结和注意事项

    1、关于页面元素的引用
    通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。如:

    1.      $("#msg").html();-->通过ID   

    2.      $("div").html(); $("input").val(); -->通过元素名(jQuery获取的是一个集合)   

    3.      $("div p");             -->第一行代码得到所有<div>标签下的<p>元素。   

    4.      $("div.container")      -->第二行代码得到 class为container的<div>元素      

    5.      $("div #msg");          -->第三行代码得到<div>标签下面id为msg的元素。   

    6.      $("table a",context);   -->第四行代码得到context为上下文的table里面所有的连接元素。    

     

    2、jQuery对象与dom对象的相互转换
    2.1只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,普通的dom对象一般可以通过$()转换成jquery对象。
    如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。

    2.2由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
    如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。

    以下几种写法都是正确的:

    1.      $("#msg").html();   

    2.      $("#msg")[0].innerHTML;   

    3.      $("#msg").eq(0)[0].innerHTML;   

    4.      $("#msg").get(0).innerHTML;  

    对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而 get(n)和索引返回的是dom元素对象。如要获取第三个 <div>元素的内容。有如下两种方法:

    1.      $("div").eq(2).html();              调用jquery对象的方法   

    2.      $("div").get(2).innerHTML;       调用dom的方法属性  

    3、同一函数实现set和get
    Jquery中的很多方法都是如此,主要包括如下几个:

    1.      $("#msg").html();              返回id为msg的元素节点的html内容。   

    2.      $("#msg").html("<b>new content</b>");        将“<b>new content</b>” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content   

    3.      $("#msg").text();              返回id为msg的元素节点的文本内容。   

    4.      $("#msg").text("<b>new content</b>");           将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面显示<b>new content</b>   

    5      $("#msg").height();              返回id为msg的元素的高度   

    6      $("#msg").height("300");       将id为msg的元素的高度设为300   

    7     $("#msg").width();              返回id为msg的元素的宽度    

    8    

    操作元素的样式
    主要包括以下几种方式:
    1.     $("#msg").css("background");              //返回元素的背景颜色    
    2.     $("#msg").css("background","#ccc")       //设定元素背景为灰色    
    3.     $("#msg").height(300); $("#msg").width("200");       //设定宽高    
    4.     $("#msg").css({ color: "red", background: "blue" });//以名值对的形式设定样式    
    5.     $("#msg").addClass("select");       //为元素增加名称为select的class    
    6.     $("#msg").removeClass("select");       //删除元素名称为select的class    
    7.     $("#msg").toggleClass("select");       //如果存在(不存在)就删除(添加)名称为select的class   
    
    6、完善的事件处理功能
    Jquery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件。
    如:
    1.     $("#msg").click(function(){alert("good")})    //为元素添加了单击事件    
    2.     $("p").click(function(i){this.style.color=['#f00','#0f0','#00f'][i]})   //为三个不同的p   
    元素单击事件分别设定不同的处理
    jQuery中几个自定义的事件:
    (1)hover(fn1,fn2):当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
    1.     //当鼠标放在表格的某行上时将class置为over,离开时置为out。    
    2.     $("tr").hover(function(){    
    3.     $(this).addClass("over");    
    4.     },    
    5.            function(){    
    6.            $(this).addClass("out");    
    7.     });   
    
    (2)ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
    1.     $(document).ready(function(){alert("Load Success")})    
    2.     //页面加载完毕提示“Load Success”,不同于onload事件,onload需要页面内容加载完毕(图片等    
    3.     ),而ready只要页面html代码下载完毕即触发。与$(fn)等价   
    (3)toggle(evenFn,oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。
    1.     //每次点击时轮换添加和删除名为selected的class。    
    2.     $("p").toggle(function(){    
    3.            $(this).addClass("selected");      
    4.     },function(){    
    5.            $(this).removeClass("selected");    
    6.     });   
    (4)trigger(eventtype): 在每一个匹配的元素上触发某类事件。例如:
    1.     $("p").trigger("click");       //触发所有p元素的click事件   5)bind(eventtype,fn),unbind(eventtype): 事件的绑定与反绑定从每一个匹配的元素中(添加)删除绑定的事件。例如:
    1.     $("p").bind("click", function(){alert($(this).text());});     
    2.     //为每个p元素添加单击事件    
    3.     $("p").unbind();       //删除所有p元素上的所有事件    
    4.     $("p").unbind("click")       //删除所有p元素上的单击事件   
    7、扩展我们需要的功能
    1.     $.extend({    
    2.            min: function(a, b){return a < b?a:b; },    
    3.            max: function(a, b){return a > b?a:b; }    
    4.     });       //为jquery扩展了min,max两个方法   
    使用扩展的方法(通过“$.方法名”调用):
    1.     alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));    
    ----------->ajax编程,请见其它笔记.
    8、渐入淡出
    1.     $("#msg").fadeIn("fast");       
    2.     $("#msg").fadeOut("slow"); 

    $("#msg").width("300");       将id为msg的元素的宽度设为300   

    9     $("input").val(");       返回表单输入框的value值   

    10   $("input").val("test");       将表单输入框的value值设为test   

    11.   $("#msg").click();       触发id为msg的元素的单击事件   

    12.   $("#msg").click(fn);       为id为msg的元素单击事件添加函数  

    同样blur,focus,select,submit事件都可以有这两种调用方法

  • 相关阅读:
    vba中数据类型
    Excel统计函数COUNTIF()的常规用法介绍
    分类求和
    在每个sheet的相同位置写入相同的值
    Timer函数
    数组总结
    如何制作本地yum源
    HDFS的优缺点
    HDFS安全模式
    HDFS的HA(高可用)
  • 原文地址:https://www.cnblogs.com/zoubizhici/p/5602298.html
Copyright © 2011-2022 走看看