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

    DOM操作分为:DOM核心、HTML-DOM、CSS-DOM 

    1.节点操作

    查找

    查找元素节点:jquery选择器

    查找属性节点:节点.attr(“”)方法,参数为要查询的属性的名字

    创建

    创建元素节点:$("html")方法,参数为HTML标记字符串,如:<p></p>

        注意:(1)动态创建的新元素节点不会被自动添加到文档中,需要用其他方法插入文档中(2)创建元素时注意标签闭合,可以用$("<p></p>")或$("</p>")

    创建文本节点:$("<p>文本内容</p>")方法

    创建属性节点:$("<p 属性名='属性值'></p>")方法

    插入节点

    (1)$("A").append("B")方法:将B节点插入到A节点内部的后位         append:末尾附加

             $("B").appendTo("A")方法:

    (2)$("A").prepend("B")方法:将B节点插入到A节点内部的前置位置

             $("B").prependTo("A")方法:

    (3)$("A").after("B")方法:将B节点插到A节点外部之后

             $("B").insertAfter("A")方法:

    (4)$("A").before("B")方法在B节点插入A节点外部之前

             $("B").insertBefore("A")方法:

    删除节点

    (1)remove()方法:删除某个节点及该节点包含的所有后代节点,返回值是一个指向已被删除的节点的引用,可再次使用

                                    可通过传参选择性的删除节点

    (2)detach()方法:该方法不会把匹配元素从jquery对象中删除,可再次使用

                                   和remove的区别:所有绑定的事件、附加的数据等都都会保留下来

             相同点:remove和detach都不会把匹配元素从jQuery对象中删除,可再次使用

    (3)empty()方法:清空某个节点中的所有后代节点,即:清空后只剩下HTML标记,不可再次使用

    复制节点

    clone()方法:复制的新元素不具有任何行为

                         传入参数true可使复制元素的同时复制元素中的绑定事件

    替换节点

    $("A").replaceWith("B")方法:将所有匹配元素替换成指定的HTML或DOM元素,即:用B节点替换A节点

    $("B").replaceAll("A")方法

    包裹节点

    (1)$("A").wrap("B")方法:将所有的元素进行包裹,用B将A包裹起来

    (2)$("A").wrapAll("B")方法:将符合的每个元素进行单独包裹

    (3)$("A").wrapInner("B")方法:用B节点将A节点的子内容(包括文本节点)包裹起来

    2. 属性操作

    获取属性:attr()方法— — 参数为属性名

    设置属性:attr()方法— — 参数为“属性名”,“属性值”;或“属性名“:”属性值”,“属性名”:“属性值”

       注意:有些方法既能获取元素的值,也能设置元素的值——html()、text()、height()、width()、val()、css()、attr()

    删除属性:removeAttr()方法

    3.样式操作

    获取样式和设置样式(获取和设置class属性):attr()方法

    追加样式:addClass(“class类名”)方法

    移除样式:removeClass()方法,参数为class名时,移除相应的样式;参数为空时,移除所有class的值

    切换样式:toggle(行为1,行为2)方法— —控制行为的重复切换

                     toggleClass("class名")方法— —样式的重复切换。如果类名存在删除它,不存在添加它。

    判断是否含有某个样式:hasClass("class")方法,如果有true,否则返回false

    4.获取和设置HTML、文本和值

    获取和设置某个元素中的HTML内容:html()方法,类似于js的innerHTML

    获取和设置某个元素中的文本内容:text()方法,类似于js的innerText

            注意:(1)Firefox不支持innerText,text()支持所有浏览器(2)text()对HTML和XML都有效

    获取和设置元素的值:val()方法,类似于js的value属性(输入框提示文字)。无论元素是文本框,下拉列表还是单选框都可以返回元素的值,如果元素为多选,则返回一个包含所有选择的值得数组。实现输入框提示:文字的显示和隐藏,触发获取和失去鼠标焦点事件

    1 $("#address").focus(function(){
    2         var txt_value = $(this).val();    //获取地址文本框的值
    3         if(txt_value=="请输入邮箱地址"){
    4                 $(this).val("");
    5         }
    6 })
    1 $("#address").blur(function(){
    2         var txt_value = $(this).val();    //获取地址文本框的值
    3         if(txt_value==""){
    4                 $(this).val("请输入邮箱地址");
    5         }
    6 })

      表单元素的defaultValue属性也可实现同样的功能,defaultValue属性包含该表单元素的初始值

    1 $("#address").focus(function(){
    2         var txt_value = $(this).val();    //获取地址文本框的值
    3         if(txt_value==this.defaultValue){
    4                 $(this).val("");
    5         }
    6 })

    val()方法的另一个用处是能使select(下拉列表框)、checkbox(多选框)和radio(单选框)相应的选项被选中,常用于表单操作

    //下拉列表
    $("#single").val("选择2号");
    $("#multiple").val(["选择2号","选择3号"])
    //单选框、多选框
    $(":checkbox").val(["check2","check3"]);
    $(":radio").val(["check2"]);

    上面的例子,也可使用attr()方法来实现同样的功能

    $("#single  option:eq(1)").attr("selected",true]);
    $("[value=radio2]:radio").attr("checked",true);

    5.遍历节点

    获得元素的直接子元素:children()方法

    获得元素后面紧邻的同辈元素:next()方法

    获得元素前面紧邻的同辈元素:prev()方法

    获取元素前后所有的同辈元素:siblings()方法

    从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素:closest()方法

    获得集合中每个匹配元素的父级元素:parent()方法

    获得集合中每个匹配元素的祖先元素:parents()方法

    6.CSS—DOM:获取和设置style对象的属性,style属性无法提取到通过外部css设置的样式属性

    获取和设置元素的样式属性:css()方法

    //单个样式
    $("p").css("color","red");
    //多个样式
    $("p").css("color":"red","bgColor":"red");

                       设置透明度:opacity属性(兼容)——$("p").css("opacity","0.9");

    获取和设置高宽:height()方法和width()方法,也可使用css()方法设置

  • 相关阅读:
    Ansible工作架构和原理
    基于WSAAsyncSelect模型的两台计算机之间的通信
    基于Select模型通信程序的编写,编译和执行
    Windows API窗口绘图程序设计
    常用自动化运维工具
    简单的程序发布流程
    TCPIP协议编程:基于UDP协议的局域网聊天工具的研发
    Python 遗传算法实现字符串
    python3 井字棋 GUI
    Docker 容器的跨主机连接
  • 原文地址:https://www.cnblogs.com/bobonote/p/7223076.html
Copyright © 2011-2022 走看看