• 2018年7月19日笔记


    • jQuery获取

    jQuery DOM 操作

    jQuery 中非常重要的部分,就是操作 DOM 的能力。

    jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。

    提示:DOM = Document Object Model(文档对象模型)

    DOM 定义访问 HTML 和 XML 文档的标准:

    “W3C 文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式。”

    获得内容 - text()、html() 以及 val()

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

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

    下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:

    $("#btn1").click(function(){
      alert("Text: " + $("#test").text());
    });
    $("#btn2").click(function(){
      alert("HTML: " + $("#test").html());
    });

    下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:

    $("#btn1").click(function(){
      alert("Value: " + $("#test").val());
    });

    获取属性 - attr()

    jQuery attr() 方法用于获取属性值。

    下面的例子演示如何获得链接中 href 属性的值:

    $("button").click(function(){
      alert($("#w3s").attr("href"));
    });
    • jQuery设置

    设置内容 - text()、html() 以及 val()

    我们将使用前一章中的三个相同的方法来设置内容:

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

    下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:

    $("#btn1").click(function(){
      $("#test1").text("Hello world!");
    });
    $("#btn2").click(function(){
      $("#test2").html("<b>Hello world!</b>");
    });
    $("#btn3").click(function(){
      $("#test3").val("Dolly Duck");
    });

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

    上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。

    下面的例子演示带有回调函数的 text() 和 html():

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

    设置属性 - attr()

    jQuery attr() 方法也用于设置/改变属性值。

    下面的例子演示如何改变(设置)链接中 href 属性的值:

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

    attr() 方法也允许您同时设置多个属性。

    下面的例子演示如何同时设置 href 和 title 属性:

    $("button").click(function(){
      $("#w3s").attr({
        "href" : "http://www.w3school.com.cn/jquery",
        "title" : "W3School jQuery Tutorial"
      });
    });

    attr() 的回调函数

    jQuery 方法 attr(),也提供回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。

    下面的例子演示带有回调函数的 attr() 方法:

    $("button").click(function(){
      $("#w3s").attr("href", function(i,origValue){
        return origValue + "/jquery";
      });
    });
    • jQuery添加

    添加新的 HTML 内容

    我们将学习用于添加新内容的四个 jQuery 方法:

    • append() - 在被选元素的结尾插入内容
    • prepend() - 在被选元素的开头插入内容
    • after() - 在被选元素之后插入内容
    • before() - 在被选元素之前插入内容

    jQuery append() 方法

    jQuery append() 方法在被选元素的结尾插入内容。

    $("p").append("Some appended text.");

    jQuery prepend() 方法

    jQuery prepend() 方法在被选元素的开头插入内容。

    $("p").prepend("Some prepended text.");

    通过 append() 和 prepend() 方法添加若干新元素

    在上面的例子中,我们只在被选元素的开头/结尾插入文本/HTML。

    不过,append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。

    在下面的例子中,我们创建若干个新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 append() 方法把这些新元素追加到文本中(对 prepend() 同样有效):

    function appendText()
    {
    var txt1="<p>Text.</p>";               // 以 HTML 创建新元素
    var txt2=$("<p></p>").text("Text.");   // 以 jQuery 创建新元素
    var txt3=document.createElement("p");  // 以 DOM 创建新元素
    txt3.innerHTML="Text.";
    $("p").append(txt1,txt2,txt3);         // 追加新元素
    }

    jQuery after() 和 before() 方法

    jQuery after() 方法在被选元素之后插入内容。

    jQuery before() 方法在被选元素之前插入内容。

    $("img").after("Some text after");
    
    $("img").before("Some text before");

    通过 after() 和 before() 方法添加若干新元素

    after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。

    在下面的例子中,我们创建若干新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 after() 方法把这些新元素插到文本中(对 before() 同样有效):

    function afterText()
    {
    var txt1="<b>I </b>";                    // 以 HTML 创建新元素
    var txt2=$("<i></i>").text("love ");     // 通过 jQuery 创建新元素
    var txt3=document.createElement("big");  // 通过 DOM 创建新元素
    txt3.innerHTML="jQuery!";
    $("img").after(txt1,txt2,txt3);          // 在 img 之后插入新元素
    }
    • jQuery删除

    删除元素/内容

    如需删除元素和内容,一般可使用以下两个 jQuery 方法:

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

    jQuery remove() 方法

    jQuery remove() 方法删除被选元素及其子元素。

    $("#div1").remove();

    jQuery empty() 方法

    jQuery empty() 方法删除被选元素的子元素。

    $("#div1").empty();

    过滤被删除的元素

    jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。

    该参数可以是任何 jQuery 选择器的语法。

    下面的例子删除 class="italic" 的所有 <p> 元素:

    $("p").remove(".italic");
    • jQuery CSS类

    jQuery 操作 CSS

    jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些:

    1. addClass() - 向被选元素添加一个或多个类
    2. removeClass() - 从被选元素删除一个或多个类
    3. toggleClass() - 对被选元素进行添加/删除类的切换操作
    4. css() - 设置或返回样式属性
    .important
    {
    font-weight:bold;
    font-size:xx-large;
    }
    
    .blue
    {
    color:blue;
    }

    jQuery addClass() 方法

    下面的例子展示如何向不同的元素添加 class 属性。当然,在添加类时,您也可以选取多个元素:

    $("button").click(function(){
      $("h1,h2,p").addClass("blue");
      $("div").addClass("important");
    });

    也可以在 addClass() 方法中规定多个类:

    $("button").click(function(){
      $("#div1").addClass("important blue");
    });

    jQuery removeClass() 方法

    下面的例子演示如何不同的元素中删除指定的 class 属性:

    $("button").click(function(){
      $("h1,h2,p").removeClass("blue");
    });

    jQuery toggleClass() 方法

    下面的例子将展示如何使用 jQuery toggleClass() 方法。该方法对被选元素进行添加/删除类的切换操作:

    $("button").click(function(){
      $("h1,h2,p").toggleClass("blue");
    });
    • jQuery CSS方法

    jQuery css() 方法

    css() 方法设置或返回被选元素的一个或多个样式属性。

    返回 CSS 属性

    如需返回指定的 CSS 属性的值,请使用如下语法:

    css("propertyname");

    下面的例子将返回首个匹配元素的 background-color 值:

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

    设置 CSS 属性

    如需设置指定的 CSS 属性,请使用如下语法:

    css("propertyname","value");

    下面的例子将为所有匹配元素设置 background-color 值:

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

    设置多个 CSS 属性

    如需设置多个 CSS 属性,请使用如下语法:

    css({"propertyname":"value","propertyname":"value",...});

    下面的例子将为所有匹配元素设置 background-color 和 font-size:

    $("p").css({"background-color":"yellow","font-size":"200%"});
    • jQuery尺寸

    jQuery 尺寸 方法

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

    1. width()
    2. height()
    3. innerWidth()
    4. innerHeight()
    5. outerWidth()
    6. outerHeight()

    jQuery width() 和 height() 方法

    width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。

    height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。

    下面的例子返回指定的 <div> 元素的宽度和高度: 

    $("button").click(function(){
      var txt="";
      txt+="Width: " + $("#div1").width() + "</br>";
      txt+="Height: " + $("#div1").height();
      $("#div1").html(txt);
    });

    jQuery innerWidth() 和 innerHeight() 方法

    innerWidth() 方法返回元素的宽度(包括内边距)。

    innerHeight() 方法返回元素的高度(包括内边距)。

    下面的例子返回指定的 <div> 元素的 inner-width/height: 

    $("button").click(function(){
      var txt="";
      txt+="Inner  " + $("#div1").innerWidth() + "</br>";
      txt+="Inner height: " + $("#div1").innerHeight();
      $("#div1").html(txt);
    });

    jQuery outerWidth() 和 outerHeight() 方法

    outerWidth() 方法返回元素的宽度(包括内边距和边框)。

    outerHeight() 方法返回元素的高度(包括内边距和边框)。

    下面的例子返回指定的 <div> 元素的 outer-width/height:

    $("button").click(function(){
      var txt="";
      txt+="Outer  " + $("#div1").outerWidth() + "</br>";
      txt+="Outer height: " + $("#div1").outerHeight();
      $("#div1").html(txt);
    });

    outerWidth(true) 方法返回元素的宽度(包括内边距、边框和外边距)。

    outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)。

    $("button").click(function(){
      var txt="";
      txt+="Outer width (+margin): " + $("#div1").outerWidth(true) + "</br>";
      txt+="Outer height (+margin): " + $("#div1").outerHeight(true);
      $("#div1").html(txt);
    });

    jQuery - 更多的 width() 和 height()

    下面的例子返回文档(HTML 文档)和窗口(浏览器视口)的宽度和高度:

    $("button").click(function(){
      var txt="";
      txt+="Document width/height: " + $(document).width();
      txt+="x" + $(document).height() + "
    ";
      txt+="Window width/height: " + $(window).width();
      txt+="x" + $(window).height();
      alert(txt);
    });

    下面的例子设置指定的 <div> 元素的宽度和高度:

    $("button").click(function(){
      $("#div1").width(500).height(500);
    });

      

    • jQuery遍历

    什么是遍历?

    jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。

    下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。

    图示解释:

    遍历 DOM 树

    • <div> 元素是 <ul> 的父元素,同时是其中所有内容的祖先。
    • <ul> 元素是 <li> 元素的父元素,同时是 <div> 的子元素
    • 左边的 <li> 元素是 <span> 的父元素,<ul> 的子元素,同时是 <div> 的后代。
    • <span> 元素是 <li> 的子元素,同时是 <ul> 和 <div> 的后代。
    • 两个 <li> 元素是同胞(拥有相同的父元素)。
    • 右边的 <li> 元素是 <b> 的父元素,<ul> 的子元素,同时是 <div> 的后代。
    • <b> 元素是右边的 <li> 的子元素,同时是 <ul> 和 <div> 的后代。

    提示:祖先是父、祖父、曾祖父等等。后代是子、孙、曾孙等等。同胞拥有相同的父。

    遍历 DOM

    jQuery 提供了多种遍历 DOM 的方法。

    遍历方法中最大的种类是树遍历(tree-traversal)。

    • jQuery祖先

    向上遍历 DOM 树

    这些 jQuery 方法很有用,它们用于向上遍历 DOM 树:

    • parent()
    • parents()
    • parentsUntil()

    jQuery parent() 方法

    parent() 方法返回被选元素的直接父元素。

    该方法只会向上一级对 DOM 树进行遍历。

    下面的例子返回每个 <span> 元素的的直接父元素:

    $(document).ready(function(){
      $("span").parent();
    });

    jQuery parents() 方法

    parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。

    下面的例子返回所有 <span> 元素的所有祖先:

    $(document).ready(function(){
      $("span").parents();
    });

    也可以使用可选参数来过滤对祖先元素的搜索。

    下面的例子返回所有 <span> 元素的所有祖先,并且它是 <ul> 元素:

    $(document).ready(function(){
      $("span").parents("ul");
    });

     

    jQuery parentsUntil() 方法

    parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。

    下面的例子返回介于 <span> 与 <div> 元素之间的所有祖先元素:

    $(document).ready(function(){
      $("span").parentsUntil("div");
    });
    • jQuery后代

    向下遍历 DOM 树

    下面是两个用于向下遍历 DOM 树的 jQuery 方法:

    • children()
    • find()

    jQuery children() 方法

    children() 方法返回被选元素的所有直接子元素。

    该方法只会向下一级对 DOM 树进行遍历。

    下面的例子返回每个 <div> 元素的所有直接子元素:

    $(document).ready(function(){
      $("div").children();
    });

    也可以使用可选参数来过滤对子元素的搜索。

    下面的例子返回类名为 "1" 的所有 <p> 元素,并且它们是 <div> 的直接子元素:

    $(document).ready(function(){
      $("div").children("p.1");
    });

    jQuery find() 方法

    find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。

    下面的例子返回属于 <div> 后代的所有 <span> 元素:

    $(document).ready(function(){
      $("div").find("span");
    });

    下面的例子返回 <div> 的所有后代: 

    $(document).ready(function(){
      $("div").find("*");
    });
    • jQuery同胞

    在 DOM 树中水平遍历

    有许多有用的方法让我们在 DOM 树进行水平遍历:

    • siblings()
    • next()
    • nextAll()
    • nextUntil()
    • prev()
    • prevAll()
    • prevUntil()

    jQuery siblings() 方法

    siblings() 方法返回被选元素的所有同胞元素。

    下面的例子返回 <h2> 的所有同胞元素:

    $(document).ready(function(){
      $("h2").siblings();
    });

    也可以使用可选参数来过滤对同胞元素的搜索。

    下面的例子返回属于 <h2> 的同胞元素的所有 <p> 元素:

    $(document).ready(function(){
      $("h2").siblings("p");
    });

    jQuery next() 方法

    next() 方法返回被选元素的下一个同胞元素。

    该方法只返回一个元素。

    下面的例子返回 <h2> 的下一个同胞元素:

    $(document).ready(function(){
      $("h2").next();
    });

    jQuery nextAll() 方法

    nextAll() 方法返回被选元素的所有跟随的同胞元素。

    下面的例子返回 <h2> 的所有跟随的同胞元素:

    $(document).ready(function(){
      $("h2").nextAll();
    });

    jQuery nextUntil() 方法

    nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。

    下面的例子返回介于 <h2> 与 <h6> 元素之间的所有同胞元素:

    $(document).ready(function(){
      $("h2").nextUntil("h6");
    });

    jQuery prev(), prevAll() & prevUntil() 方法

    prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞元素向后遍历,而不是向前)。

    • jQuery过滤

    缩写搜索元素的范围

    三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。

    其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹配某项指定标准的元素。

    jQuery first() 方法

    first() 方法返回被选元素的首个元素。

    下面的例子选取首个 <div> 元素内部的第一个 <p> 元素:

    $(document).ready(function(){
      $("div p").first();
    });

    jQuery last() 方法

    last() 方法返回被选元素的最后一个元素。

    下面的例子选择最后一个 <div> 元素中的最后一个 <p> 元素:

    $(document).ready(function(){
      $("div p").last();
    });

    jQuery eq() 方法

    eq() 方法返回被选元素中带有指定索引号的元素。

    索引号从 0 开始,因此首个元素的索引号是 0 而不是 1。下面的例子选取第二个 <p> 元素(索引号 1):

    $(document).ready(function(){
      $("p").eq(1);
    });

    jQuery filter() 方法

    filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。

    下面的例子返回带有类名 "intro" 的所有 <p> 元素:

    $(document).ready(function(){
      $("p").filter(".intro");
    });

    jQuery not() 方法

    not() 方法返回不匹配标准的所有元素。

    提示:not() 方法与 filter() 相反。

    下面的例子返回不带有类名 "intro" 的所有 <p> 元素:

    $(document).ready(function(){
      $("p").not(".intro");
    });
  • 相关阅读:
    【JSP】上传图片到数据库中
    【MySQL】ERROR 1005: Can't create table (errno: 150)的错误解决办法
    【汇编】16进制转换成10进制(三种方法)
    书单
    C实现一个NTP客户端,可以从指定IP的NTP服务器获取时间戳
    crosss compile VLC with OpenMAX on ARM board(RockChip RK3399),in order to use Hard Acceleration when decode video
    win7结束进程 时,提示“拒绝访问”、“没有此任务的实例运行”怎么办?
    驱动文件中只有cat/inf/dll文件,怎么安装
    MFC开发中添加自定义消息和消息响应函数
    MFC中开发ocx控件,html容器收不到ocx的事件Event
  • 原文地址:https://www.cnblogs.com/karl-python/p/9343835.html
Copyright © 2020-2023  润新知