jQuery 初探

在网页中,常常使用 HTML、CSS、javascript

HTML 用于页面的布局,以及一些组件的布放

CSS 是对页面的样式进行修改、美化

javascript 定义了页面中的一些行为,比如,点击某个元素后,进行隐藏或改变颜色等

原生 javascript 弊病


编写太繁琐,不好用

jQuery 出现


jQuery 是一个 JavaScript 的第三方库。对 javascript 进行了封装,极大地简化了 JavaScript 编程。同时,jQuery 很容易学习。

jQuery 库包含以下特性:

  • HTML 元素选取
  • HTML 元素操作
  • CSS 操作
  • HTML 事件函数
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改
  • AJAX
  • Utilities

使用


jQuery 基础语法

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。

基础语法是:

$(selector).action()

  • 美元符号$表示调用 jQuery 库
  • (selector)用于“查询”和“查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作
$(this).hide() 函数,隐藏当前的 HTML 元素。
$("#test").hide() 隐藏 id="test" 的元素。ID
$("p").hide()  隐藏所有 

元素。标签 $(".test").hide() 隐藏所有 class="test" 的元素。CSS 属性

选择器

  • jQuery 元素选择器

jQuery 使用 CSS 选择器来选取 HTML 元素。

$("p") 选取 

元素。 $("p.intro") 选取所有 class="intro" 的

元素。 $("p#demo") 选取所有 id="demo" 的

元素。

  • jQuery 属性选择器

jQuery 使用 XPath 表达式来选择带有给定属性的元素。

$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
  • jQuery CSS 选择器

jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。

查找元素:$('css 选择器')

下面的例子把所有 p 元素的背景颜色更改为红色:

$("p").css("background-color","red");

另一个例子:

$("div table td.abc input[type=submit]") 空格表示所属关系,div table取到一类元素;td.abc类,即 class;input 的类型

部分其他语法:

语法  描述
$(this) 当前 HTML 元素
$("p")  所有 

元素 $("p.intro") 所有 class="intro" 的

元素 $(".intro") 所有 class="intro" 的元素 $("#intro") id="intro" 的元素 $("ul li:first") 每个

    的第一个
  • 元素 $("[href$='.jpg']") 所有带有以 ".jpg" 结尾的属性值的 href 属性 $("div#intro .head") id="intro" 的
    元素中的所有 class="head" 的元素

jQuery 参考手册 - 选择器

jQuery 的操作

jQuery 事件处理方法(例如.click)是 jQuery 中的核心函数。

事件处理程序 指的是当 HTML 中发生某些监听的事件时,所调用的方法。

涉及 定义对事件的监听 和 指定事件发生时调用的方法。方法中会有 javascript 代码 和 jQuery 语句。

通常会把 jQuery 事件处理程序 放到的 javascript 脚本 中:








This is a heading

This is a paragraph.

This is another paragraph.

页面加载完成后,点击button按钮,会隐藏p标签的内容

对页面元素操作

$()jquery 定义的元素对象,通常是在 javascript 对象的基础上增加了一些属性和一层封装

读取属性、设置属性,读和写只差一个参数

找本页面的元素的 id: $(#id_name)or$(div#id_name)

$(#id_name).empty()清空子元素,$(#id_name).append()添加子元素,$(#id_name).html()返回元素内的 HTML 代码,$(#id_name).html("一段 HTML 代码")设置元素内容

jquery 事件

事件,浏览器中发生了什么

  • 普通事件监听
$("selector").click(function(e){

});

选择元素,事件类型,执行的函数。$(e.target)取到事件的元素。

一个表格,最后一列是操作,增加或删除按钮,点击按钮后,调用函数,.closest('tr').find('td.idStore').attr('data-id'),向上找最近的tr,然后向下找 class为idStoretd,获取date-id属性

有一个弊端,有些应用,在 html 的 body 中没有任何内容,所有内容都是通过 javascript 生成的。如果一开始我们监听元素时元素没有出现,监听失效

  • 文艺事件监听

不怕后加入的节点

$("selector").on('click',function(e){

});

这个监听的元素在最开始可以不存在在页面中,用户操作过程中生成的元素,只要符合选择器,监听就有效

  • 取消监听

$("selector").off();

如果需要对绑定事件取消绑定,重新绑定,可以通过 off。off 与 on 是一对

jQuery 参考手册 - 事件

链接/链式语法

jQuery 允许链接(链式语法)。链接(Chaining)是一种在同一对象上执行多种任务的便捷方法。


例如这里的$("#h01").attr("style","color:red").html("Hello jQuery")

jquery 网络请求

  • jQuery $.get() 方法

$.get(URL,callback);

URL参数,必须,规定您希望请求的 URL。
callback参数,可选,是请求成功后所执行的函数名。

例子:

$("button").click(function(){
  $.get("demo_test.asp",function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});

$.get()的第一个参数是我们希望请求的 URL"demo_test.asp"

第二个参数是回调函数。第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态。

  • jQuery $.post() 方法

$.post(URL,data,callback);

URL参数,必需,规定希望请求的 URL。
data参数,可选,规定连同请求发送的数据。
callback参数,可选,是请求成功后所执行的函数名。

例子:

$("button").click(function(){
  $.post("demo_test_post.asp",
  {
    name:"Donald Duck",
    city:"Duckburg"
  },
  function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});

$.post()的第一个参数是我们希望请求的 URL"demo_test_post.asp"。然后我们连同请求(name 和 city)一起发送数据。"demo_test_post.asp" 中的 ASP 脚本读取这些参数,对它们进行处理,然后返回结果。第三个参数是回调函数。第一个回调参数存有被请求页面的内容,而第二个参数存有请求的状态。

jQuery 函数

  • 文档就绪函数

通常会将所有 jQuery 函数、代码放入一个$(document).ready(function()函数中:

$(document).ready(function(){

--- jQuery functions go here ----

});

这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。

如果在文档没有完全加载之前就运行函数,操作可能失败。

  • jQuery 代码

jQuery 语句和 javascript 代码 可以一起放入 jQuery 函数,函数可以嵌套

下面是一个完整的使用例子:

引入 jQuery 库 和单独的 CSRF jQuery 函数文件

    
    

jquery.csrf.js的内容:

// using jQuery
function getCookie(name) {
    var cookieValue = null;
    if (document.cookie && document.cookie != '') {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) {
            var cookie = jQuery.trim(cookies[i]);
            // Does this cookie string begin with the name we want?
            if (cookie.substring(0, name.length + 1) == (name + '=')) {
                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                break;
            }
        }
    }
    return cookieValue;
}
var csrftoken = getCookie('csrftoken');

function csrfSafeMethod(method) {
    // these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    }
});

定义了一个表单

          

在表单下面定义了 javascript 脚本,如果点击了表单中id="commentBtn"的按钮,jQuery 发送post请求,请求内容为id="commentContent"中的值,如果请求成功,$("#commentContent").val("");id="commentContent"中的值设为空,并通过设置window.location.href为一个连接地址进行页面跳转。

              
  • 直接将函数放到标签中

通常会把 jQuery 代码、函数、 放到 部分的事件处理方法中

  • 单独文件中的函数

如果网站包含许多页面,并且希望 jQuery 函数易于维护,可以将 jQuery 函数放到独立的 .js 文件中。通过 src 属性来引用文件





在页面引用 jQuery 库


jQuery 库可以通过一行简单的标记被添加到网页中

本地添加

可以将 jQuery 库下载到本地,然后作为外部 js 文件添加到页面中

共有两个版本的 jQuery 可供下载:

  • 一份是精简过的,另一份是未压缩的(供调试或阅读)。
  • 这两个版本都可从jQuery.com下载。

因为 jQuery 库是在一个 JavaScript 文件中,其中包含了所有的 jQuery 函数,所以可以通过在script标签中引用 js 文件的方式将 jQuery 添加到网页中:

``

请注意,

在页面中调用 jQuery


在浏览器的console中可以调用已经加载好的 jQuery

参考资料


www.w3school.com.cn

python 部落: 18天学会写网站

jquery 官网

jQuery api

你可能感兴趣的:(jQuery 初探)