• jQuery中的DOM操作


    一、DOM的概念

    DOM ( Document Object Model ) 文档对象模型。根据W3C DOM规范,DOM是一种与浏览器、平台、语言无关的接口,使用该接口可以轻松的访问页面中所有标准组件。

    二、DOM操作的分类

    1.DOM Core (核心)

    定义了一套标准的针对任何结构化文档的对象,包括HTML、XHTML和XML

    例如JavaScript中的getELementById()、getElementByTagName()、getAttribute()、setAttribute()

    2.HTML-DOM

    定义了一套标准的针对XML文档的对象

    例如.src()等

    3.CSS-DOM

    定义了一套标准的针对XHTML文档的对象

    例如.style.color()等

    三、jQuery中的DOM操作

    01.查找节点

    元素节点:构成了DOM的基础。文档结构中,<html>是根元素,代表整个文档,其他的还有<head>,<body><ul>,<li>等等。元素节点之间可以相互包含(当然遵循一定的规则)

    属性节点:元素都可以包含一些属性,属性的作用是对元素做出更具体的描述,比如id,name之类的。

    查找元素节点

    查找属性节点

    02.创建节点

    创建元素节点

    var $li = $("<li></li>");    //创建一个<li>元素;注意事项一
    $("ul").append($li);            //添加到<ul>节点中去;注意事项二

    注意事项一:创建单个元素时,要注意闭合回路和使用标准的XHTML格式。

    注意事项二:动态创建的新元素节点不会自动添加到文档中去,而是需要使用其他方式将其插入到文档中,如append

    创建文本节点

    var $li = $("<li>雪梨</li>");    //创建一个<li>元素和“雪梨”文本节点;
    $("ul").append($li);            //添加到<ul>节点中去;

    创建属性节点

    var $li = $("<li title="雪梨">雪梨</li>");    //创建一个<li>元素、“雪梨”文本节点和“title”属性节点;注意事项三
    $("ul").append($li);            //添加到<ul>节点中去;
    

    注意事项三:是否创建属性节点的区别在于虽然网页显示一致,但是查看源码创建了属性节点的代码会有title这个属性节点

    03.插入节点

    append

    <p>我想说:</P>                       //HTML代码
    $("p").append("<b>你好</b>");        //jquery代码
    <p>我想说:</b>你好<b></p>            //结果

    appendTo

    <p>我想说:</P>                             //HTML代码
    $("<b>你好</b>").appendTo("p");        //jquery代码
    <p>我想说:</b>你好<b></p>            //结果
    

    <p></p>与<b></b>结果<p><b></b></p>

    append()与appendTo():想匹配的元素后置内容 

    prepend()与prependTo():向匹配的元素前置内容

    <p></p>与<b></b>结果<p></p><b></b>

    after()与insertAfter():向匹配的元素之后插入内容内容

    before()与insertBefore():在匹配的元素之前插入内容

    04.删除节点

    remove()

    detach()

    empty()

    作用原理

    节点包含的所有后代节点将同时被删除

    同remove(),但不会把匹配的元素从jQuery对象删除

    并非删除节点而是清空元素中所有后代节点

    删后事件及数据

    不能

    -

    删后元素本身恢复


    05.复制节点
     

    clone():

    $("ul li").click(function(){
         $(this).clone().appendTo("ul");   //复制当前单击的节点,并将它追加到<ul>元素中,但新元素布局有原来的事件
    })

    clone(ture):

    $("ul li").click(function(){
         $(this).clone(ture).appendTo("ul");   //复制当前单击的节点,并将它追加到<ul>元素中,同时新元素具有以前的事件
    })

    06.替换节点

    replaceWith()与replaceAll()

    $("p").replaceWith("<strong>不喜欢的水果</strong>");    //replaceAith()
    $("<strong>不喜欢的水果</strong>").replaceAll("p");     //replaceAll()
    //替换前元素已经绑定了时间,替换后元素失去绑定的事件

    07.包裹节点

    08.属性操作

    (1) 获取和设置属性

    单个属性

    $("p").attr("title","your title");    //将title换成your title

    多个属性

    $("p").attr("title":"your title", "name":"test");    //将title换成your title,name 换成test

    既能设置属性的值,又能获取元素的值:attr(),html(),text(),heigth(),width(),val(),css()

    (2) 删除属性

    removeAttr()

    jQuery1.6以后 新增了prop(),removeProp()

    09.样式操作

    (1) 获取样式和设置样式

    (2) 追加样式

    方法

    aadClass()

    attr()

    用途

    追加样式

    设置样式

    对同一个网页元素操作

    <p>test</p>

    <p>test</p>

    第一次使用方法

    $(“p”).aadClass(“high”);

    $(“p”).attr(“class”,”high”);

    第一次结果

    <p class=”high”>test</p>

    <p class=”high”>test</p>

    再次使用方法

    $(“p”).aadClass(“another”);

    $(“p”).attr(“class”,” another”);

    最终结果

    <p class=”high another”>test</p>

    <p class=”another”>test</p>

    (3) 移除样式

    $("p").removeClass("high");                    //移除class中的high 
    $("p").removeClass("high another");            //移除class中的high another 
    $("p").removeClass();                          //移除class中的全部值

    (4) 切换样式

    $Btn.toggle(function(){    //点击切换隐藏显示

    //显示的元素
    },function(){
     //隐藏的元素
    })


    $("p").toggle("another") //点击切换class有无another

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

    $("p").hasClass("another");    //判断p元素是否含有为another的class

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

    html() :只能用于XHTML文档

    val() :还可以使select、checkbox、radio相应的选项被选中

     

    <select id="sel">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
    <input type="checbox" value="v1"/>1
    <input type="checbox" value="v2"/>2
    <input type="checbox" value="v3"/>3
    <input type="checbox" value="v4"/>4
    <input type="checbox" value="v5"/>5
    <input type="radio" value="r1"/>1
    <input type="radio" value="r2"/>2
    
    $("#sel").val("2");               //改变默认选项
    $("#sel").val(["2","3"]);         //使2,3被选中
    $(":checkbox").val(["v2","v4"]);  //2,4被选中
    $(":radio").val(["r2"]);          //2被选中

     

    text():HTML、XML有效

    11.遍历节点

    children():只找自己下一层的元素

    closest():向上找一个

    parent():向上找一个,不包含自身

    parents():向上找到找不到为止

    12.CSS-DOM操作

  • 相关阅读:
    JQuery2
    Java基础复习4
    HTML基础复习4
    Java基础复习3
    HTML基础复习3
    HTML基础复习2
    HTML基础复习1
    shiro权限管理(认证和授权)
    权限管理(认证和授权)
    关于mybatis动态sql的if标签的一个问题
  • 原文地址:https://www.cnblogs.com/TaylorApril/p/6283195.html
Copyright © 2020-2023  润新知