zoukankan      html  css  js  c++  java
  • jQuery中的DOM操作

    首先附图一张,大家了解一下此篇博文的大概内容,里面的具体内容还需大家耐心细看:

    jQuery中的DOM操作

    一、 DOM操作的分类

      DOM操作分为3个:DOM Core(核心)HTML_DOMCSS_DOM

        1. DOM Core

      任何一中支持DOM的程序设计语言都可以使用DOM Core,它并非仅限于处理网页,也用来处理任何一种使用标记语言编写出来的文档,如XML

        Javascript中使用DOM Core获取txtName对象的方法

            Document.getElementById(“txtName”);

        Javascript中使用DOM Core获取某元素的src属性的方法

            (元素)Element.getAttribute(“src”);

        2. HTML  DOM

        提供了一些简明的记号描述各种HTML元素的属性。

       使用HTML _DOM获取表单对象的方法

          Document.forms   //HTML DOM提供了一个forms对象的集合

       使用HTML_DOM获取某元素的src属性方法

        Element.src;

       注HTML DOM的代码相对DOM Core的简短,但HTML DOM只能用来处理Web文档。

        3. CSS DOM

      CSS DOM是针对CSS的操作。CSS DOM技术主要用于获取和设置style对列的各种属性

        如:设置某元素的style对象字体颜色的方法:

      Element.style.color=”blue”;

    二、 jQuery中的DOM操作

      

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    
            "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    
    <head>
    
        <title></title>    
    
    </head>
    
    <body>
    
    <p title=”选择你最喜欢的球类运动。”>你最喜欢的球类运动?</p>
    
    <ul>
    
    <li title=’篮球’>篮球</li>
    
    <li title=’足球’>足球</li>
    
    <li title=’网球’>网球</li>
    
    </ul>
    
    </body>
    
    </html>

    1. 查找节点

    (1) 查找节点元素

       获取元素节点并打印出它的文本内容

        Var $li=$(“ul li:eq(1)”);  //获取ul里的第二个li节点

        Var li_txt=$li.txt();  //获取第2li元素节点的文本内容

        Alert(li_txt);  //打印文本内容

    (2) 查找节点属性

    使用attr()方法获取元素的各种属性的值。当Attr()方法的参数是一个时,要查询属性的名字。如:

      Var $p=$(“p’);  //获取<p>节点

      Var ptxt=$p.attr(“title“);  //获取p元素节点属性title

      Alert(ptxt);  //打印title属性值

    2. 创建节点  

    1)创建两个li元素节点:

      Var $li1=$(“<li></li>”);

      Var $li2=$(“<li></li>”);

    将这两个li元素插入文档

         $(“ul”).append($li1);

         $(“ul”).append($li2);  //链式操作$(“ul”).append($li1).append($li2);

    :动态创建的节点不会自动添加到文档中,需使用append()方法。

    2)创建文本节点

      Var $li1=$(“<li>乒乓球</li>”);

      Var $li2=$(“<li>羽毛球</li>”);

    (3) 创建属性节点

      Var $li1=$(“<li title=”乒乓球”>乒乓球</li>”);

      Var $li2=$(“<li title=”羽毛球”>羽毛球</li>”);

    3. 插入节点

                    插入节点的方法

    方法

    描述

    示例

    Append()

    在每个匹配的元素内部追加内容

    $(“p”).append(“<b>hello</b>”);

    appendTo()

    将所有的匹配元素追加到指定的元素中

    $(“<b>Hello</b>”).appendTo(“p”);

    Prepend()

    向每个匹配的元素内部前置内容

    $(“p”).prepend(“<b>Hello</b>”);

    prependTo()

    将所有匹配的元素插入到指定元素的前面

    $(“<b>Hello</b>”).prependTo(“p”);

    After()

    在每个匹配的元素后插入内容

    $(“p”).after(“<b>Hello</b>”);

    insertAfter()

    将所有匹配的元素插入到指定的元素后面

    $(“<b>Hello</b>”).insertAfter(“p”);

    Before()

    在每个匹配的元素之前插入内容

    $(“p“).before(“<b>Hello</b>”);

    InsertBefore()

    将所有匹配的元素插入到指定的元素前面

    $(“<b>Hello</b>”).insertBefore(“p”);

     

      4.删除节点

        (1)、remove()方法,如:

      $("ul li:eq(1)").remove();  //获取第二个li元素节点后,将它从网页中删除

      当某个节点用remove删除后,并非整个节点被彻底删除不可用,而是删除该节点的后代元素。下面的代码演示的是将remove删除的节点获取后继续使用:

      

      //获取第二个li元素节点,将它从网页删除
       var $li=$("ul li:eq(1)").remove();
    //将刚删除的节点又重新添加到ul元素中
       $li.appendTo("ul");

     

    使用appendTo方法简化以上代码:

      $("ul li:eq(1)").appendTo("ul");

      (2)、empty()方法

      严格上讲,empty()方法并非删除节点,而是清空节点,它能清空元素中的所有后代节点。

      $("ul li:eq(1)").empty();

     5.复制节点

      使用clone()方法沿用上面的例子:

     

     $(function()
    
    {
    
    //复制当前点击的节点,将它追加到<li>元素
    
    $(this).clone().appendTo(“ul”);
    
    });

       6.替换节点   

      使用replaceWith()replaceAll()

       ReplaceWith()方法的作用是将所有匹配元素都替换成指定的HTML或者DOM元素。如:

         $(“p”).replaceWith(“<strog>你最不喜欢的运动是?</strong>”);

      用replaceAll方法实现同样的效果:

        $(“<strog>你最不喜欢的运动是?</strong>”).replaceAll(“p”);

      7.包裹节点

         (1)Wrap():  

        $(“strong”).wrap(“<b></b>”);  //<b>标签将<strong>元素包裹起来。

          <b><strong>你最喜欢的球类运动是?</strong></b>

          <b><strong>你最喜欢的球类运动是?</strong></b>

         (2)wrapAll()方法:

        $(“strong”).wrapAll(“<b></b>”);

          <b>

          <strong>你最喜欢的球类运动是?</strong>

          <strong>你最喜欢的球类运动是?</strong>

          </b>

         (3)wraplnner()方法:

      此方法将每一个匹配元素的子内容(包括文本节点)用其他结构化标记包裹起来。

        $(“strong”).wrpainner(“<b></b>”);其结果如下:

         <strong title=”选择你最喜欢的球类运动。”><b>你最喜欢的球类运动是?</b></strong>

      8.属性操作

       在jquery中用attr()方法来获取和设置元素属性,removeArrt()方法来删除元素属性。

       (1) 获取和设置属性

           Var $para=$(“p”);   //获取<p>节点

           Var p_txt=$para.attr(“title”);  //获取<p>元素节点属性title

      为<p>元素设置title属性值

        $(“p”).attr(“title”,”我的标题1”);  //设置单个属性值。

        $(“p”).attr(“title”:”我的标题1”,”name”:”张三”);

    !注attr()方法,既能设置元素属性的值,也能获取元素属性的值。类似的还有Html()text()height()width()val()css()等方法。

      (2) 删除属性(removeAttr()

        $(“p”).removeAttr(“title”);  //删除<p>元素的属性title

      9.样式操作

     (1) 使用attr()方法来获取和设置<p>元素的class

          Var p_class=$(“p”).attr(“class”);  //获取<p>元素的class

        Var (“p”).attr(“class”,”high”);   //设置<p>元素的class ”high”

      在多数情况下,此方法是将原来的class替换为新的class,而不是在原来的基础上追加新的class

      (2) 追加样式

      Jquery中提供了addClass()方法来追加样式:

        $(“input:eq(2)”).click(function()

        {

          $(“p”).addClass(“anther”);  //<p>元素追加“anther”类

        })

      (3)、移除样式:

        $(“p”).removeClass(“high”);   //移除<p>元素中值为“high”的class

      当需要移除多个class时,可以使用空格将两个class隔开:

        $(“p”).removeClass(“high  anther”);  //antherhigh分别为两个不同的class

        removeClass()方法不带参数时,表示移除全部class

        $(“P”).removeClass();   //不带任何参数,移除全部class

      (4)、切换样式(toggleClass()方法):

      例:对<p>元素进行toggleClass()方法操作

        <p class=”myClass” title=”test”>test</p>

        $(“p”).toggleClass(“another”);当添加toggleClass()方法后<p>元素的class会在myClassmyClass another中切换。

      (5)判断是否含有某个样式

          hasClass()方法用来判断元素中是否含有某个Class,如果有,则返回true,否则返回false

    10.设置和获取HTML,文本和值

      (1)html()方法

      此方法类似与javascript中的innerHTML属性,可以用来获取或设置某个元素中的html内容。例:

        <p title=”这是一个p标签”><strong>这真的是一个p标签</strong></p>

        Var p_html=$(“p”).html();

        Alert(p_html);  //输出“<strong>这真的是一个p标签</strong>

    (2)text()方法

       类似于javascript中的innerText属性,例:

          Var p_txt=$(“p”).text();  //获取<p>元素的text

          Alert(p_txt);  //输出“这真的是一个p标签”

    (3)val()方法

      类似于javascript中的value属性,用来获取和设置元素的值,无论元素是文本框,下拉框还是单选框,都可以返回元素的值。如果元素为多选,则返回一个包含所有选择值的数组。

        <input type=”text” id=”txtuid” value=”请输入用户名”/>

         //获取valuejquery代码

        Var txt_val=$(“#uid”).val();  //获取p元素的代码

         //设置valuejquery代码

        $(”#txtuid”).val(“admin”)HTML   //设置p元素的代码

    Val()方法的另一个用处:能使下拉列表框、多选框和单选框相应的选项被选中。

        $(“#single”).val(“checkbox1”);  //设置下拉框的默认选项为“checkbox1

        $(“:checkbox”).val([“check2”,”check3”]);  //下拉框的第2项和第3项被选中

      同样使用attr()方法实现单选框和多选框的选中

        $(“#single opton:eq(1)”).attr(“selected”,true);

        $(“[value=radio2]:radio”).attr(“checked”,true);

    11.遍历节点

       (1)children()方法

        Var $ul=$(“ul”).children();

        For(var i=0;i<$ul.length;i++)

        {

          Alert($ul[i].innerHTML);

        }

     (2)next()方法

      用于取得匹配元素后面紧邻的同辈元素

        Var $p;

           $p=$(“p”).next();

       (3)prev()方法

    用于取得匹配元素前面紧邻的同辈元素

        Var $ul=$(“ul”).prev();

       (4)siblings()方法

    用于取得匹配元素前后所有的同辈元素

        Var $p2=$(“p”).siblings();

       (5)closest()方法

    用来取得最近的匹配元素。首先检查当前元素是否匹配。如果匹配则直接返回元素本身。如不匹配则向上查找父元素,逐级向上直到找到匹配选择器的元素。如什么都没有找到则返回一个空的jquery对象。

    jquery中其他遍历节点的方法,如:find()filter()nextAll()prevAll()parent()parents()等。

    12.Css DOM操作

      (1)css()方法

            获取元素的样式属性

          $(“p”).css(“color”);

          设置css属性

        $(“p”).css(“color”,”red”);  //设置单个属性

        $(“p”).css({“fontSize”:”30px”,”backgroundColor”:”#88888”});

      (2)opacity属性

      对透明度的设置  $(“p”).css(“opacity”,”0.5”)

      (3)height()方法

        $(“p”).height();  //获取p元素的高度值

        $(“p”).height(“100px”);  //设置p元素的高度值

      (4)width()方法height()方法用法一致

      (5)offset()方法

      获取元素在当前视窗的相对偏移,返回两个属性(left,top,只对可见元素有效

        Var offset=$(“p”).offset():

        Var left=offset.left;  //获取左偏移

        Var top=offset.top;  //获取右偏移

      (6)position()方法  与offset()方法相同

      获取元素相对于最近的一个position样式属性设置为relativeabsolute的祖父节点的相对偏移。

      (7)scrollTop()scrollLeft()

      获取元素滚动条距顶端的距离和距左侧的距离

        Var $p=$(“p”);

           Var scrollTop=$p.scrollTop();   //获取元素滚动条距顶端的距离

        Var scrollLeft=$p.scrollLeft ();  //获取元素滚动条距左侧的距离

    $(“textarea”).scrollTop(300);

    $(“textarea”).scrollTop(300);  

  • 相关阅读:
    集训日记
    各种考试
    树上差分
    树的直径
    讲课
    adb常用命令
    关于appium的简单理解
    使用appium过程中常遇到的坑以及解决方案
    JMeter面试题
    fiddler面试题
  • 原文地址:https://www.cnblogs.com/chef5-3/p/3422495.html
Copyright © 2011-2022 走看看