• jQuery操纵DOM


    一、基本操作
      1.html() - 类似于原生DOM的innerHTML属性
        *获取 - html();
        *设置 - html("html代码");
      2.val() - 类似于原生DOM的value属性
        *获取 - val();
        *设置 - val(value);
      3.text() - 类似于原生DOM的textContent属性
        *获取 - text();
        *设置 - text("文本内容");
      4.attr() - 获取或设置指定元素的属性
        *获取 - attr(attrName) - 类似于getAttribute()
        *设置 - attr(attrName,attrValue) - 类似于setAttribute()
        *removeAttr(attrName) - 类似于removeAttribute()

      示例:

    1 <ul id="city">
    2     <li id="bj" name="beijing">北京</li>
    3     <li id="tj" name="tianjin">天津</li>
    4     <li id="nj" name="nanjing">南京</li>
    5   </ul>
    6   <input type="text" id="user" value="请输入你的用户名">
    View Code
     1 //html()
     2     $("#bj").html("纽约");//则北京被替换为纽约
     3     $("#city").html("<li>中国</li>");//ul下的所有元素被删除替换
     4 
     5     //val()
     6     console.log($("#user").val());//获得value值
     7     $("#user").val("请输入密码");//设置value值
     8 
     9     //text()
    10     console.log($("#bj").text());//获得节点中的文本
    11     $("#bj").text("长春");//修改节点中的文本
    12     console.log($("#city").text());//只获得标签中的文本节点内容
    13     $("#city").text("你好");//等价于$("#city").html("你好");
    14 
    15     //attr()
    16     console.log($("#bj").attr("name"));//beijing
    17     $("#bj").attr("name","bj");//修改name属性为bj
    18     $("#tj").attr({name:"tj","data-i":2});//批量修改|设置属性 (data-i 不带引号SyntaxError: Unexpected token -)
    19     $("#tj").removeAttr("name");//删除name属性
    View Code

    二、样式操作
      1.attr("class",classValue) - 设置样式|属性
      2.addClass("className") - 追加样式
      3.removeClass() - 删除样式
        *不传参 - 删除所有样式
        *传参 - 删除指定样式
      4.toggleClass() - 切换样式
        *只接受一个参数
        *在没有样式与指定样式之间切换
      5.hasClass() - 判断样式
        *判断指定元素是否包含指定样式
      6.css() - 操作样式
        *设置
          *css(name,value)
          *css(options)
            *options - 选项
            {
              name:value,
              name2:value2,
              ...
            }
          *获取 - css(name);
      示例:

     1 <style>
     2     div {
     3         width : 100px;
     4         height : 100px;
     5         border : solid 1px black;
     6         background : pink;
     7         float : left;
     8         margin-right : 10px;
     9     }
    10     .one {
    11         width : 50px;
    12         height : 50px;
    13         background : yellow;
    14     }
    15     .two {
    16         width : 150px;
    17         height : 150px;
    18         background : green;
    19     }
    20   </style>
    21  </head>
    22 
    23  <body>
    24   <button id="btn1">attr()</button>
    25   <button id="btn2">addClass()</button>
    26   <button id="btn3">removeClass()</button>
    27   <button id="btn4">toggleClass()</button>
    28   <button id="btn5">hasClass()</button>
    29   <button id="btn6">css()</button>
    30   <br></br>
    31   <div id="d1"></div>
    32   <div id="d2"></div>
    View Code
     1 //attr()
     2     $("#d1").attr("class","one");//设置class属性
     3 
     4     //addClass()
     5     $("#d1").addClass("two");//追加|叠加
     6 
     7     //removeClass()
     8     $("#d1").removeClass();//删除所有 相当于 .class=""
     9     $("#d1").removeClass("two");//有two则删除
    10 
    11     //toggleClass()
    12     $("#d1").toggleClass("one");//有则删除,无则添加
    13 
    14     //hasClass()
    15     console.log($("#d1").hasClass("one"));//返回布尔值
    16 
    17     //css()
    18     $("#d2").css({
    19             "background" : "red",//如果设置为空则为删除当前属性
    20             "width" : 50,
    21             "height" : 50
    22         });
    23     console.log($("#d2").css("float"));//获取当前节点的属性值(所有)
    View Code

    三、遍历节点
      1.parent() - 获取指定节点的父节点
      2.children() - 获取指定节点的所有子节点
      3.next() - 获取指定节点的下一个兄弟节点
      4.prev() - 获取指定节点的上一个兄弟节点
      5.siblings() - 获取指定节点的所有兄弟节点
      6.find(expr) - 在指定节点中查找指定内容
        *注意 - 查找指定节点的后代节点
      示例:

     1 li id="bj" name="beijing">北京
     2         <ul>
     3             <li>海淀区</li>
     4             <li>朝阳区</li>
     5             <li>大兴区</li>
     6         </ul>
     7     </li>
     8     <li id="tj" name="tianjin">天津</li>
     9     <li id="nj" name="nanjing">南京</li>
    10     <li id="sh" name="shanghai">上海</li>
    11     <li id="cq" name="chongqing">重庆</li>
    12   </ul>
    View Code
     1     // 1. 获取北京节点的父节点
     2     console.log($("#bj").parent().attr("id"));
     3     
     4     // 2. 获取id为city节点的所有子节点的个数
     5     console.log($("#city").children().length);
     6     
     7     // 3. 获取南京节点的上一个兄弟节点和下一个兄弟节点
     8     console.log($("#nj").prev().attr("name"));
     9     console.log($("#nj").next().attr("name"));
    10     
    11     // 4. 获取南京节点的所有兄弟节点的个数
    12     console.log($("#nj").siblings().length);
    13     console.log($("#nj~li").length);
    14     
    15     // 5. 获取id为city节点下所有li元素的个数(后代节点)
    16     console.log($("#city").find("li").length);
    View Code

    四、创建节点
      1.元素节点 - $(HTML代码)
      2.文本节点 - text()
      3.属性节点 - attr()
      4.jQuery - $(HTML代码)
      示例:

    1     <ul id="city">
    2     <li id="bj" name="beijing">北京</li>
    3     <li id="tj" name="tianjin">天津</li>
    4     <li id="nj" name="nanjing">南京</li>
    5     <li id="sh" name="shanghai">上海</li>
    6   </ul>
    View Code
     1 // 为id为city节点增加<li id="cq" name="chongqing">重庆</li>
     2     // 1. 创建<li id="cq" name="chongqing">重庆</li>
     3         // a. 创建<li></li>
     4         var $li = $("<li></li>");
     5         // b. 设置属性
     6         $li.attr("id","cq").attr("name","chongqing");
     7         // c. 创建文本节点
     8         // d. 添加文本节点
     9         $li.text("重庆");
    10         //var $li = $("<li id='cq' name='chongqing'>重庆</li>");
    11     // 2. 获取id为city节点
    12     var $city = $("#city");
    13     // 3. 添加append - appendChild
    14     $city.append($li);
    15     
    16     //直接添加
    17     $("#city").append($("<li id='cq' name='chongqing'>重庆</li>"));
    View Code

    五、删除节点
      1.remove() - 删除自身及后代节点
      2.empty() - (清空)删除后代节点,但保留自身节点
      示例:

    1 // 1. 删除北京节点
    2     $("#bj").remove();
    3     // 2. 删除天津节点
    4     $("#tj").empty();//保留自身节点,但节点中的文本等所有都删除
    View Code

    六、插入节点
      1.内部插入
        *append()
        *prepend
        *appendTo()
        *prependTo()
      2.外部插入
        *before
        *after
        *insertBefore
        *insertAfter
      示例:

     1 <ul id="city">
     2     <li>北京</li>
     3     <li id="tj">天津</li>
     4     <li>南京</li>
     5   </ul>
     6   <ul id="game">
     7     <li>反恐</li>
     8     <li id="ms">魔兽</li>
     9     <li>星际</li>
    10   </ul>
    View Code
     1 //---内部插入  插入节点的内部,成为其子节点
     2     // 操作天津节点和魔兽节点
     3     // append - append后面的节点被添加到append前面的节点的后面
     4     $("#tj").append($("#ms"));//01append.png
     5 
     6     // prepend - prepend后面的节点被添加到prepend前面的节点的前面
     7     $("#tj").prepend($("#ms"));//02prepend.png
     8 
     9     // appendTo - appendTo前面的节点被添加到appendTo后面的节点的后面
    10     $("#tj").appendTo($("#ms"));
    11 
    12     // prependTo - prependTo前面的节点被添加到prependTo后面的节点的前面
    13     $("#tj").prependTo($("#ms"));
    14     
    15     //---外部插入  成为兄弟节点
    16     // 操作天津节点和魔兽节点
    17     // before - before后面的节点被添加到before前面的节点的前面
    18     $("#tj").before($("#ms"));//03before.png
    19 
    20     // after - after后面的节点被添加到after前面的节点的后面
    21     $("#tj").after($("#ms"));//04after.png
    22 
    23     // insertBefore
    24     $("#tj").insertBefore($("#ms"));
    25 
    26     // insertAfter
    27     $("#tj").insertAfter($("#ms"));
    View Code

    七、替换节点
      1.repalceWith
      2.replaceAll - 就是颠倒了的repalceWith
      示例:

    1 <button>按钮一</button>
    2     <button>按钮二</button>
    3     <button>按钮三</button>
    4     <p>这是段落.</p>
    View Code
    1 // repalceWith - 前面的元素是被替换的,后面的元素时替换的
    2     $("button").replaceWith($("<p>这也是段落.</p>"));
    3     // replaceAll - 就是颠倒了的repalceWith
    4     $("<button>按钮</button>").replaceAll($("p"));
    View Code

    八、复制节点
      1.JQuery - clone(boolean)
        *boolean参数 - 表示是否复制事件
      2.DOM - cloneNode(boolean)
        *boolean参数 - 表示是否复制后代节点
      示例:

    1 <button>点我</button>
    2 <p>这是一个段落.</p>
    View Code
     1 /jQuery
     2     $("button").click(function(){
     3         alert("xxx");
     4     });
     5     // 复制button按钮,将其追加到p标签中
     6     $("button").clone(true).appendTo($("p"));
     7     
     8     // DOM
     9     var btn = document.getElementsByTagName("button")[0];
    10     var copy = btn.cloneNode(true);
    11     var p = document.getElementsByTagName("p")[0];
    12     p.appendChild(copy);
    View Code
  • 相关阅读:
    获取窗口句柄
    人生路上要懂得“刹车”(转)
    关于打开外部程序并且发送一个按键消息 (转)
    CString 和 char * 的相互转换
    iOS开发之了解iPhone中Get和Post方式(转)
    一些简单的Python代码,尝尝Python啥味道 (转)
    iphone 使用委托(delegate)在不同的窗口之间传递数据(转)
    UITextView控件的用法详解 (转)
    iPhone起步1: "Hello,World!" in iPhone Development (转)
    【引用】iphone xml解析流程
  • 原文地址:https://www.cnblogs.com/Medeor/p/4934708.html
Copyright © 2020-2023  润新知