JQuery

1. 语法

$(selector).action();

  • 工厂函数​$():将DOM对象转化为jQuery对象
  • 选择器selector:获取需要操作的DOM元素
  • 方法action():jQuery中提供的方法,包括绑定事件处理的方法
  1. “$”等同于“jQuery”
    • $(document).ready()等同于jQuery(document).ready()
  2. $(function() {});$(document).ready(function(){ })的简写
  3. this,如果是取得元素的话,则对应当前元素的对象
    • $(this)则是当前元素被jQuery处理的对象。

2. 事件

鼠标事件 键盘事件 表单事件 文档/窗口事件
click keypress(按住不断触发,即产生字符时) submit load
dblclick keydown(按住只触发一次) change resize
mouseenter keyup focus获得焦点 scroll
mouseleave 指针离开被选元素时 blur失去焦点 unload
mousemove 鼠标指针离开任意子元素时也会被触发

事例

$("p").click(function(){
    // 动作触发后执行的代码!!
});

2.1. 事件绑定

$(selector).bind(event,data,function,map)
$(selector).on(event,childSelector,data,function,map)
event 必需。规定添加到元素的一个或多个事件。 由空格分隔多个事件值。必须是有效的事件。
data 可选。规定传递到函数的额外数据。
function 必需。规定当事件发生时运行的函数。
map 规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

例如:

1,多个事件
$("p").bind("mouseover mouseout",function(){
$("p").toggleClass("intro");
});
2,事件映射
$("button").bind({
click:function(){$("p").slideToggle();},
mouseover:function(){$("body").css("background-color","#E9E9E4");},  
mouseout:function(){$("body").css("background-color","#FFFFFF");}  
});

2.2. 事件解绑

$(selector).unbind(event,function,eventObj)
$(selector).off(event,selector,function(eventObj),map)
参数 描述
event unbind可选,off必需。规定一个或多个要从元素上移除的事件。 由空格分隔多个事件值。 如果只规定了该参数,则会删除绑定到指定事件的所有函数。
function 可选。规定从元素上指定事件取消绑定的函数名称。
eventObj 可选。规定要使用的移除的 event 对象。这个 eventObj 参数来自事件绑定函数。

3. 动画效果

3.1. 隐藏/显示

$(selector).hide(speed,callback);隐藏
$(selector).show(speed,callback);显示
$(selector).toggle(speed,callback);切换

可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是隐藏或显示完成后所执行的函数名称。

3.2. 淡入/淡出

  • jQuery fadeIn()/fadeOut()方法
  • jQuery fadeIn() 用于淡入已隐藏的元素。

语法:

$(selector).fadeIn(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

3.3. 向下滑动/向上滑动

  • slideDown()/slideUp()方法
  • jQuery slideDown() 方法用于向下滑动元素。

语法:

$(selector).slideDown(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

jQuery slideToggle()

3.4. 自定义动画

(selector).animate({styles},speed,easing,callback)

例如:

$("button").click(function(){
    $("#box").animate({height:"300px"});
});

3.5. 停止动画

$(selector).stop(stopAll,goToEnd) 两个可选参数都默认false

4. jQuery HTML/CSS

4.1. 查找节点

三个简单实用的用于 DOM 操作的 jQuery 方法:

  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素标签的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值
  • attr(attribute) - 设置或返回被选元素的属性/值

4.2. 添加元素

在被选元素的结尾插入内容

$(selector).append(content,function(index,html))

在被选元素的结尾插入 HTML 元素

$(content).appendTo(selector)

content:必需。规定要插入的内容(必须包含 HTML 标签)。

如果 content 是已存在的元素,它将从它的当前位置被移除,并被插入在被选元素之后。

在被选元素的开头插入内容

$(selector).prepend(content,function(index,html))

在被选元素的开头插入 HTML 元素

$(content).prependTo(selector)

content:必需。规定要插入的内容(必须包含 HTML 标签)。

如果 content 是已存在的元素,它将从它的当前位置被移除,并被插入在被选元素之后。

在被选元素之后插入内容

$(selector).after(content,function(index))

在被选元素后插入 HTML 元素

$(content).insertAfter(selector)

content:必需。规定要插入的内容(必须包含 HTML 标签)。

如果 content 是已存在的元素,它将从它的当前位置被移除,并被插入在被选元素之后。

在被选元素之前插入内容

$(selector).**before**(content,function(index))

在被选元素前插入 HTML 元素

$(content).**insertBefore**(selector)

content:必需。规定要插入的内容(必须包含 HTML 标签)。

如果 content 是已存在的元素,它将从它的当前位置被移除,并被插入在被选元素之后。

4.3. 删除元素

移除被选元素(包含数据和事件)

$(selector).remove()

从被选元素移除所有子节点和内容

$(selector).empty()

4.4. 替换,复制

把被选元素替换为新的 HTML 元素

$(content).replaceAll(selector)  必须包含 HTML 标签

把被选元素替换为新的内容

$(selector).replaceWith(content,function(index))

生成被选元素的副本,包含子节点、文本和属性。

$(selector).clone(true|false)  是否需复制事件处理程序。

4.5. CSS

1,向被选元素添加一个或多个类名

$(selector).addClass(classname,function(index,oldclass))

2,从被选元素移除一个或多个类

$(selector).removeClass(classname,function(index,currentclass))

规定要移除的一个或多个类名称。如需移除若干个类,请使用空格分隔类名称。如果该参数为空,则将移除所有类名称。

5. JSON

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

  • 数据在名称/值对中 "name": "菜鸟教程"
  • 数据由逗号分隔 { "name":"菜鸟教程" , "url":"www.runoob.com" }
  • 大括号保存对象
  • 中括号保存数组

JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false) { "flag":true }
  • 数组(在中括号中)[]
  • 对象(在大括号中){}
  • null {"runoob":null }

6. 表单

$("form").serialize()

通过序列化表单值创建 URL 编码文本字符串:FirstName=Mickey&LastName=Mouse

$("form").serializeArray()

通过序列化表单值来创建对象(name 和 value)的数组。对象数组[{name:,value:},…]

6.1. 表单提交的三种方法

//ajax提交  
$("#ajaxBtn").click(function() {  
    var params = $("#myform").serialize();  
    $.ajax( {  
        type : "POST",  
        url : "RegisterAction.action",  
        data : params,  
        success : function(msg) {  
            alert("success: " + msg);  
        }  
    });  
})  

//jQuery提交  
$("#jqueryBtn").click(function(){
    $("#myFormId").attr("action", "userinfo.shtml");  
    $("#myform").submit();  
})  

//js提交   
$("#jsBtn").click(function(){  
    document.myform.action="RegisterAction.action";     
    document.myform.submit();     
})

6.2. JQuery遍历两种each方法

each循环方法规定为每个匹配元素规定运行的函数。

$(selector).each(function(index,element))
  • index - 选择器的 index 位置(匹配的节点数组的索引)
  • element - 当前的元素(也可使用 "this" 选择器)

$.each方法,遍历对象的子元素为其执行的方法

遍历对象(有附加参数):

$.each(Object, function(p1, p2) {
      this;       //这里的this指向每次遍历中Object的当前属性值
      p1; p2;     //访问附加参数
 }, ['参数1', '参数2']);

遍历数组(有附件参数):

$.each(Array, function(p1, p2){
      this;       //这里的this指向每次遍历中Array的当前元素
      p1; p2;     //访问附加参数
 }, ['参数1', '参数2']);

遍历对象(没有附加参数)

$.each(Object, function(name, value) {
      this;      //this指向当前属性的值
      name;      //name表示Object当前属性的名称
      value;     //value表示Object当前属性的值
 });

遍历数组(没有附加参数)

$.each(Array, function(i, value) {
    this;      //this指向当前元素
    i;         //i表示Array当前下标
    value;     //value表示Array当前元素
});

results matching ""

    No results matching ""