热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery学习(二)-DOM操作

来自锋利的jquery第二版一、DOM分类DOM分为3类DOMCore(核心)、HTML-DOM、CSS-DOM1、DOMCore:其并不专属于javascript,任何一种支持DO

来自锋利的jquery第二版

一、DOM分类

 DOM分为3DOM Core(核心)、HTML-DOMCSS-DOM

1、DOM Core:其并不专属于Javascript,任何一种支持DOM程序设计的语言都可以使用它。如Javascript中的getElementByIdgetElementByTagNamegetAttibutesetAttribute等方法,就是DOM Core的组成部分。

2、HTML-DOM:其比DOM Core出现的还要早,它提供了一些更简明的记号来描述各种HTML元素属性。如:element.src获取某元素上的src属性。

3、CSS-DOMCSS-DOM是针对CSS操作的。Javascript中,CSS-DOM主要作用于获取和设置style对象的各种属性。如:element.style.color=”red”设置某元素的字体颜色。

二、DOM操作

1、查找节点:通过上面一章选择器,查找出想要的节点元素。

2、创建节点

1.创建元素节点

  $(html)方法会根据传人的html标记字符串,创建一个DOM对象,并将这个DOM对象包装成一个jQuery对象后返回。还有动态创建的新元素是脱离文档的(处于游离状态),需要其他方法将其插入文档中。如$(“ul”).append(“

  • ”)

    2.创建文本节点

      在创建元素节点的时候直接加入文本内容。如$(

    hello word
    ”)

    3.创建属性节点

      与创建文本节点类似,在创建元素节点的时候直接加入属性设置。如$(

    ’)

    3、插入节点

     

    append()

    向元素内部追加内容

    hello

    $(“p”).append(‘Eric’)

    显示结果:

    helloEric

    appendTo()

    将元素追加到指定的元素中,与append用法颠倒

    hello

    $(“Eric”).appendTo(‘p’)

    显示结果:

    helloEric

    prepend()

    想匹配元素内前置内容(向前追加)

    hello

    $(“p”).prepend(‘Eric’)

    显示结果:

    Erichello

    prependTo()

    将元素前置到指定元素内,与prepend用法颠倒

    hello

    $(“Eric”).prependTo(‘p’)

    显示结果:

    Erichello

    after()

    在匹配元素后面追加内容

    hello

    $(“p”).after(‘Eric’)

    显示结果:

    hello

    Eric

    insertAfter()

    将要添加的元素插入到指定元素后面,与after用法颠倒

    hello

    $(“Eric”).after(‘p’)

    显示结果:

    hello

    Eric

    before()

    在匹配元素之前插入内容

    hello

    $(“p”).before(‘Eric’)

    显示结果:

    Eric

    hello

    insertBefore()

    将要添加的元素插入到指定元素之前,与before用法颠倒

    hello

    $(“Eric”).insertBefore(‘p’)

    显示结果:

    Eric

    hello

    4、删除节点

    1.remove()方法

      作用是从DOM中删除所有匹配的元素,传入参数用于根据jQuery表达式来筛选元素。删除成功后,会返回删除元素的引用,方便重新添加。

    如:$(“ul li:eq(1)”).remove()是删除ul中第二个li元素;

    $(“ul li”).remove(‘li[title!=”myTitle”]’)删除ulli元素title属性值不等于myTitle的所有li元素。

    2.Detach()方法

      作用和remove一样,也是从DOM中去除所有匹配的元素。但是这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来在使用这些匹配的元素,与remove不同的是,所有绑定的事件、附加的数据等都会保留下来。总而言之,如果删除后,不会再重新添加使用该元素就用remove,反之用detach

    3.Empty()方法

      empty方法其实是清空节点内容。

    5、复制节点

      使用clone()可以复制匹配的元素,如果需要复制的新元素具有本体的功能(如点击事件)可以添加一个true的参数。

    如:$(“otherUL li”).click(function(){

    $(this).clone().append(“myUL”);//不具有如何行为

    //如果需要将其点击事件也复制就添加true参数

    //$(this).clone(true).append(“myUL”);

    })

    6、替换节点

      jQuery提供了两个方法实现替换节点,即replaceWithreplaceAll,这两个方法实现功能一样,不同的只是使用方法相颠倒。

    举个栗子

    我帅吗?

    替换成你真帅

    哈哈这里意淫一下,继续我们的栗子,分别用两种方法实现

    $(“p”).replaceWith(“你真帅”);

    $(“你真帅”).replaceAll(“p”);

     

    7、包裹节点

    1.wrap()方法

      该方法对于需要在文档插入额外的结构化标签非常有用,而且它不会破坏原始文档的语义。代码如下:

    $(“strong”).wrap(“”);//b标签把strong原始包裹起来

    效果:你真帅

    2.wrapAll()方法

      该方法会将所有匹配元素用一个元素包裹。它不同于wrap方法,wrap方法是将所有的元素单独包裹。

    Html代码

    我帅吗?

    你真帅!

     

    $(“strong”).wrapAll(“b”)

    效果:

    我帅吗?

    你真帅!

     

    $(“strong”).wrap(“b”)

    效果:

    我帅吗?

    你真帅!

     

    3.wrapInner()方法

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

    helloEric

    $(“p”).wrapInner(“”)

    效果:

    helloEric

    8、属性操作

    1.获取和设置属性

      jQuery提供attr方法来获取和设置属性。如:

    var title=$(“p”).attr(“title”);

    $(“p”).attr(“title”,”你真帅!”);

      在jQuery1.6版本后添加了prop方法,该方法用于修复之前版本attr的一下问题,如用attr获取和设置属性值是boolean值的属性(checked、selected、disabled等)时可能异常(如:不设置时获取的值是undifend,而不是预期的false;还有再次设置checkboxchechedtrue时还是显示选不上),而一prop就可以解决这些问题。所以本人总计关于属性值是boolean类型的就使用prop,其它的使用attr。。

    2.删除属性

    jQuery提供removeAttr方法来获取和设置属性。如:

    $(“p”).removeAttr(“title”);

    jQuery1.6版本后可以使用removeProp

    9、样式操作

    1.追加样式:用addClass()方法

    2.移除样式:removeClass()方法

    3.切换样式

    使用toggle方法,代码如下:

    $(element).toggle(function(){

    //显示元素代码

    },functuon(){

    //隐藏元素代码

    })

    还可以使用toggleClass方法实现样式切换,代码如下:

    $(element).toggleClass(“myClass”)//反复切换类名myClass

    4.判断是否包含某种样式:用hasClass方法

    10、遍历节点

    1.children()方法

      该方法获取匹配元素的子元素。注意:该方法只考虑子元素而不考虑其他后代元素

    2.next()方法

      该方法用于获取匹配元素后面紧邻的同辈元素。

    3.prev()方法

      该方法用于获取匹配元素前面紧邻的同辈元素。

    4.Siblings ()方法

      该方法用于获取匹配元素前后的所有同辈元素。

    5.Closest ()方法

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

    比如,给点击目标元素的最近li元素添加背景颜色,代码如下:

    $(document).click(function(e){

    $(e.target).closest(“li”).css(“background”,”red”)

    })

    11、CSS-DOM操作

    1.offset方法

      它的作用是获取元素在当前视窗的相对偏移,其中返回的对象包含两个属性,即topleft。获取p元素的偏移量,代码如下:

    var pOffset=$(“p”).offset();

    var left=pOffset.left;

    var top=pOffset.top;

    2.position方法

      它的作用是获取元素相对于最近的一个position样式属性设置为relative或者absolute的祖父节点的相对偏移,与offset使用一样。

    3.scrollTop scrollLeft 方法

      这两个方法作用是分别获取和设置获取元素的滚动条距离顶端距离和左侧距离。代码如下:

    var p=$(“p”);

    //获取

    var scrollTop=p.scrollTop();

    Var scrollLeft=p.scrollLeft();

    //设置

    p.scrollTop(300);

    p.scrollLeft(300);


    推荐阅读
    • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
    • 如何在HTML中获取鼠标的当前位置
      本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
    • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
    • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
    • Html5-Canvas实现简易的抽奖转盘效果
      本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
    • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
    • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
    • javascript  – 概述在Firefox上无法正常工作
      我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
    • Voicewo在线语音识别转换jQuery插件的特点和示例
      本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
    • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
    • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
      本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
    • 小程序wxs中的时间格式化以及格式化时间和date时间互转
      本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
    • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
    • Summarize function is doing alignment without timezone ?
      Hi.Imtryingtogetsummarizefrom00:00otfirstdayofthismonthametric, ... [详细]
    • angular.element使用方法及总结
      2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
    author-avatar
    雯颜哥_135
    这个家伙很懒,什么也没留下!
    Tags | 热门标签
    RankList | 热门文章
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有