JQuery

什么是 jQuery ?

jQuery是一个JavaScript函数库。
jQuery是一个轻量级的"写的少,做的多"的JavaScript库。
jQuery库包含以下功能:
HTML 元素选取
HTML 元素操作
CSS 操作
HTML 事件函数
JavaScript 特效和动画
HTML DOM 遍历和修改
AJAX
Utilities
提示: 除此之外,Jquery还提供了大量的插件。

jQuery 语法

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作
基础语法: $(selector).action()

$ 美元符号定义 jQuery
选择符(selector)"查询"和"查找" HTML 元素
jQuery 的 action() 执行对元素的操作

实例:
  • $(this).hide() 隐藏当前元素
  • $("p").hide() 隐藏所有 <p> 元素
  • $("p.test").hide() 隐藏所有 class="test" 的 <p> 元素
  • $("#test").hide() 隐藏所有 id="test" 的元素

jQuery 入口函数 和 JavaScript 入口函数

jQuery 入口函数
$(document).ready(function(){
    // 执行代码
});
或者
$(function(){
    // 执行代码
});
JavaScript 入口函数
window.onload = function () {
    // 执行代码
}
两者区别
  • jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。
  • JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。


    image.png

jQuery 选择器

  • jQuery 选择器允许对 HTML 元素组或单个元素进行操作。
  • jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它
    基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
  • jQuery 中所有选择器都以美元符号开头:$()。
元素选择器
jQuery 元素选择器基于元素名选取元素。

在页面中选取所有 <p> 元素:

$("p")

实例: 用户点击按钮后,所有 <p> 元素都隐藏:
$(document).ready(function(){
  $("button").click(function(){
    $("p").hide();
  });
});
#id 选择器
  • jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。
  • 页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器。
    通过 id 选取元素语法如下:

$("#test")

实例: 当用户点击按钮后,有 id="test" 属性的元素将被隐藏:
$(document).ready(function(){
  $("button").click(function(){
    $("#test").hide();
  });
});
.class 选择器
  • jQuery 类选择器可以通过指定的 class 查找元素。
    语法如下:

$(".test")

实例: 用户点击按钮后所有带有 class="test" 属性的元素都隐藏:
$(document).ready(function(){
  $("button").click(function(){
    $(".test").hide();
  });
});
更多实例
| 语法                                | 描述
| $("*")                              | 选取所有元素
| $(this)                             | 选取当前 HTML 元素
| $("p.intro")                        | 选取 class 为 intro 的 <p> 元素 
| $("p:first")                        | 选取第一个 <p> 元素 
| $("ul li:first")                    | 选取第一个 <ul> 元素的第一个 <li> 元素
| $("ul li:first-child")              | 选取每个 <ul> 元素的第一个 <li> 元素
| $("[href]")                         | 选取带有 href 属性的元素 
| $("a[target='_blank']")             | 选取所有 target 属性值等于 "_blank" 的 <a> 元素
| $("a[target!='_blank']")            | 选取所有 target 属性值不等于 "_blank" 的 <a> 元素
| $(":button")                        | 选取所有 type="button" 的 <input> 元素 和 <button> 元素
| $("tr:even")                        | 选取偶数位置的 <tr> 元素
| $("tr:odd")                         | 选取奇数位置的 <tr> 元素 

jQuery 事件

什么是事件?
  • 页面对不同访问者的响应叫做事件。
  • 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。
实例:
  • 在元素上移动鼠标。
  • 选取单选按钮
  • 点击元素
常用的 jQuery 事件方法
click()

click() 方法是当按钮点击事件被触发时会调用一个函数。
该函数在用户点击 HTML 元素时执行。
在下面的实例中,当点击事件在某个 <p> 元素上触发时,隐藏当前的 <p> 元素:

$("p").click(function(){
  $(this).hide();
});
dblclick()
  • 当双击元素时,会发生 dblclick 事件。
    dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数:
$("p").dblclick(function(){
  $(this).hide();
});
mouseleave()
  • 当鼠标指针离开元素时,会发生 mouseleave 事件。
    mouseleave() 方法触发 mouseleave 事件,或规定当发生 mouseleave 事件时运行的函数:
$("#p1").mouseleave(function(){
    alert("再见,您的鼠标离开了该段落。");
});
mousedown()
  • 当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
    mousedown() 方法触发 mousedown 事件,或规定当发生 mousedown 事件时运行的函数:
$("#p1").mousedown(function(){
    alert("鼠标在该段落上按下!");
});
mouseup()
  • 当在元素上松开鼠标按钮时,会发生 mouseup 事件。
    mouseup() 方法触发 mouseup 事件,或规定当发生 mouseup 事件时运行的函数:
$("#p1").mouseup(function(){
    alert("鼠标在段落上松开。");
});
hover()
  • hover()方法用于模拟光标悬停事件。
    当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
$("#p1").hover(
    function(){
        alert("你进入了 p1!");
    },
    function(){
        alert("拜拜! 现在你离开了 p1!");
    }
);
focus()
  • 当元素获得焦点时,发生 focus 事件。
  • 当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
    focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数:
$("input").focus(function(){
  $(this).css("background-color","#cccccc");
});
blur()
  • 当元素失去焦点时,发生 blur 事件。
    blur() 方法触发 blur 事件,或规定当发生 blur 事件时运行的函数:
$("input").blur(function(){
  $(this).css("background-color","#ffffff");
});

jQuery 获取内容和属性

  • jQuery 拥有可操作 HTML 元素和属性的强大方法。

jQuery DOM 操作

  • jQuery 中非常重要的部分,就是操作 DOM 的能力。
  • jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
获得内容 - text()、html() 以及 val()
三个简单实用的用于 DOM 操作的 jQuery 方法:
  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值
$("#btn1").click(function(){
  alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
  alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){
  alert("值为: " + $("#test").val());
});
获取属性 - attr()
  • jQuery attr() 方法用于获取属性值。
    下面的例子演示如何获得链接中 href 属性的值:
$("button").click(function(){
  alert($("#runoob").attr("href"));
});

attr 和 prop 的区别介绍:

  • 对于 HTML 元素本身就带有的固有属性,在处理时,使用 prop 方法。
  • 对于 HTML 元素我们自己自定义的 DOM 属性,在处理时,使用 attr 方法。

<a href="https://www.runoob.com" target="_self" class="btn">菜鸟教程</a>

  • 以上这个例子里 <a> 元素的 DOM 属性有: href、target 和 class,这些属性就是 <a> 元素本身就带有的属性,也是 W3C 标准里就包含有这几个属性,或者说在 IDE 里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用 prop 方法。

<a href="#" id="link1" action="delete" rel="nofollow">删除</a>

  • 以上这个例子里 <a> 元素的 DOM 属性有: href、id 和 action,很明显,前两个是固有属性,而后面一个 action 属性是我们自己自定义上去的,<a> 元素本身是没有这个属性的。这种就是自定义的 DOM 属性。处理这些属性时,建议使用 attr 方法。

prop()函数的结果:

  • 如果有相应的属性,返回指定属性值。
  • 2.如果没有相应的属性,返回值是空字符串。

attr()函数的结果:

  • 如果有相应的属性,返回指定属性值。
  • 如果没有相应的属性,返回值是 undefined。
对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用 attr 方法。
具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop()
设置内容 text()、html() 以及 val()
  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值
$("#btn1").click(function(){
    $("#test1").text("Hello world!");
});
$("#btn2").click(function(){
    $("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
    $("#test3").val("RUNOOB");
});

text()、html() 以及 val() 的回调函数

$("#btn1").click(function(){
    $("#test1").text(function(i,origText){
        return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")"; 
    });
});
 
$("#btn2").click(function(){
    $("#test2").html(function(i,origText){
        return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")"; 
    });
});

设置属性 - attr()

$("button").click(function(){
  $("#runoob").attr("href","http://www.runoob.com/jquery");
});

//同时设置多个值
$("button").click(function(){
    $("#runoob").attr({
        "href" : "http://www.runoob.com/jquery",
        "title" : "jQuery 教程"
    });
});

attr() 的回调函数

$("button").click(function(){
  $("#runoob").attr("href", function(i,origValue){
    return origValue + "/jquery"; 
  });
});

jQuery - 添加元素

添加新的 HTML 内容

  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容
jQuery append() 方法
//jQuery append() 方法在被选元素的结尾插入内容(仍然该元素的内部)。
$("p").append("追加文本");
jQuery prepend() 方法
//jQuery prepend() 方法在被选元素的开头插入内容。
$("p").prepend("在开头追加文本");
//三个运行的结果是一样的
function appendText()
{
    var txt1="<p>文本。</p>";              // 使用 HTML 标签创建文本
    var txt2=$("<p></p>").text("文本。");  // 使用 jQuery 创建文本
    var txt3=document.createElement("p");
    txt3.innerHTML="文本。";               // 使用 DOM 创建文本 text with DOM
    $("body").append(txt1,txt2,txt3);        // 追加新元素
}
区别
append/prepend 是在选择元素内部嵌入。
after/before 是在元素外面追加。

jQuery 删除元素

  • remove() - 删除被选元素(及其子元素)
  • empty() - 从被选元素中删除子元素

remove() 方法

//jQuery remove() 方法删除被选元素及其子元素。
$("#div1").remove();

empty() 方法

//jQuery empty() 方法删除被选元素的子元素。
$("#div1").empty();

过滤被删除的元素

  • jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。
  • 该参数可以是任何 jQuery 选择器的语法。
    下面的例子删除 class="italic" 的所有 <p> 元素:
$("p").remove(".italic");

jQuery 尺寸

jQuery 提供多个处理尺寸的重要方法:

  • width()
  • height()
  • innerWidth()
  • innerHeight()
  • outerWidth()
  • outerHeight()

jQuery width() 和 height() 方法

1、width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
2、height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
//下面的例子返回指定的 <div> 元素的宽度和高度:
//实例
$("button").click(function(){
  var txt="";
  txt+="div 的宽度是: " + $("#div1").width() + "</br>";
  txt+="div 的高度是: " + $("#div1").height();
  $("#div1").html(txt);
});

jQuery innerWidth() 和 innerHeight() 方法

1、innerWidth() 方法返回元素的宽度(包括内边距)。
2、innerHeight() 方法返回元素的高度(包括内边距)
//下面的例子返回指定的 <div> 元素的 inner-width/height:
//实例
$("button").click(function(){
  var txt="";
  txt+="div 宽度,包含内边距: " + $("#div1").innerWidth() + "</br>";
    txt+="div 高度,包含内边距: " + $("#div1").innerHeight();
  $("#div1").html(txt);
});

jQuery outerWidth() 和 outerHeight() 方法

1、outerWidth() 方法返回元素的宽度(包括内边距和边框)。
2、outerHeight() 方法返回元素的高度(包括内边距和边框)。
//下面的例子返回指定的 <div> 元素的 outer-width/height:
//实例
$("button").click(function(){
  var txt="";
  txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth() + "</br>";
  txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();
  $("#div1").html(txt);
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,394评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,205评论 0 1
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,386评论 0 8
  • jQuery模块 选择器、DOM操作、事件、AJAX与动画 匿名函数自执行 作用:解决命名空间与变量污染的问题 总...
    青青玉立阅读 921评论 0 0
  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 3,489评论 0 44