jQuery 基础教程 (四)之jQuery中的DOM操作

一、jQuery 中的 DOM 操作

(1)DOM(Document Object Model—文档对象模型):一 种与浏览器, 平台, 语言无关的接口, 使用该接口可以 轻松地访问页面中所有的标准组件

(2)DOM 操作的分类:

(A)DOM Core: DOM Core 并不专属于 JavaScript, 任何一 种支持 DOM 的程序设计语言都可以使用它. 它的用途 并非仅限于处理网页, 也可以用来处理任何一种是用标 记语言编写出来的文档, 例如: XML

(B)HTML DOM: 使用 JavaScript 和 DOM 为 HTML 文 件编写脚本时, 有许多专属于 HTML-DOM 的属性

(C)CSS-DOM:针对于 CSS 操作, 在 JavaScript 中, CSSDOM 主要用于获取和设置 style 对象的各种属性

 

二、查找节点

(1)查找元素节点:

通过 jQuery 选择器完成.

(2)查找属性节点:

查找到所需要的元素之后, 可以 调用 jQuery 对象的 attr() 方法来获取它的各种 属性值

 

四、创建节点

(1)创建节点:

使用 jQuery 的工厂函数 $(): $(html); 会根 据传入的 html 标记字符串创建一个 DOM 对象, 并把 这个 DOM 对象包装成一个 jQuery 对象返回.

(2)注意:

动态创建的新元素节点不会被自动添加到文档中, 而是 需要使用其他方法将其插入到文档中;

当创建单个元素时, 需注意闭合标签和使用标准的 XHTML 格式. 例如创建一个<p>元素, 可以使用 $("<p/>") 或 $("<p></p>"), 但不能使用 $("<p>") 或 $("<P>")

(3)创建文本节点就是在创建元素节点时直接把文本内容 写出来; 创建属性节点也是在创建元素节点时一起创 建

 

五、插入节点

(1)动态创建了 HTML 元素之后, 还需要将新 创建的节点插入到文档中, 即成为文档中某 个节点的子节点

以上方法不但能将新创建的 DOM 元素插入到文 档中, 也能对原有的 DOM 元素进行移动.

(2)创建节点和插入节点示例

var newP =$("<p>武广高速铁路即将通车!</p>");
newP.insertAfter(“#chapter”); //将创建的newP元素插入到ID为#chapter的元素之后//或者
newP.appendTo(“body”); //插入到body元素里

 

六、删除节点

(1)remove()

从 DOM 中删除所有匹配的元素, 传入的参数用于根据 jQuery 表达式来筛选 元素. 当某个节点用 remove() 方法删除后, 该节点所包含的所有后代节点将被同时删 除. 这个方法的返回值是一个指向已被删除 的节点的引用.

(2)empty()

清空节点 – 清空元素中的所有后 代节点(不包含属性节点).

 

七、复制节点

(1)clone()

克隆匹配的 DOM 元素, 返回 值为克隆后的副本. 但此时复制的新节 点不具有任何行为.

(2)clone(true)

复制元素的同时也复制元 素中的的事件

 

八、替换节点

(1)replaceWith()

     将所有匹配的元素都替换为 指定的 HTML 或 DOM 元素

(2)replaceAll()

    颠倒了的 replaceWith() 方法.

注意: 若在替换之前, 已经在元素上绑定了 事件, 替换后原先绑定的事件会与原先的元 素一起消失

 

九、包裹节点

(1)wrap()

    将指定节点用其他标记包裹起来. 该方法对于需要在文档中插入额外的结构 化标记非常有用, 而且不会破坏原始文档的 语义. (2)wrapAll()

    将所有匹配的元素用一个元素来包裹. 而 wrap() 方法是将所有的元素进行单独包裹.

(3)wrapInner()

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

 

十、属性操作

(1)attr(): 获取html属性和设置属性

       当为该方法传递一个参数时, 即为某元素的获取指定属性

       当为该方法传递两个参数时, 即为某元素设置 指定属性的值

(2)jQuery 中有很多方法都是一个函数实现获取和设 置.

       如: attr(), html(), text(), val(), height(), width(), css() 等.

(3)removeAttr(): 删除指定元素的指定属性

 

十一、样式操作

(1)获取 class 和设置 class

     class 是元素的一个属性, 所以获取 class 和设置 class 都可以使用 attr() 方 法来完成.

(2)追加样式

     addClass()

(3)移除样式

     removeClass() --- 从匹配的元素中删除 全部或指定的 class

(4)切换样式

      toggleClass() --- 控制样式上的重复切 换.如果类名存在则删除它, 如果类名不存在则添 加它.

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

     hasClass() --- 判断元素中 是否含有某个 class, 如果有, 则返回 true; 否则返 回 false

 

十二、设置和获取 HTML, 文本和值

(1)读取和设置某个元素中的 HTML 内容

     html() . 该 方法可以用于 XHTML, 但不能用于 XML 文档

(2)读取和设置某个元素中的文本内容

     text(). 该方法 既可以用于 XHTML 也可以用于 XML 文档.

(3)读取和设置某个元素中的值

     val() --- 该方法类似 JavaScript 中的 value 属性. 对于文本框, 下拉列 表框, 单选框该方法可返回元素的值(多选框只能 返回第一个值).如果为多选下拉列表框, 则返回一 个包含所有选择值的数组

(4)val() 方法的两个练习

 

十三、常用的遍历节点方法

(1)取得匹配元素的所有子元素组成的集合

       children(). 该方法只考虑子元素而不考虑任 何后代元素.

(2)取得匹配元素后面紧邻的同辈元素的集合 (但集合中只有一个元素)

     next()

(3)取得匹配元素前面紧邻的同辈元素的集合 (但集合中只有一个元素)

     prev()

(4)取得匹配元素前后所有的同辈元素

     siblings()

 

十四、CSS-DOM 操作

(1)获取和设置元素的样式属性

     css()

    获取和设置元素透明度 opacity 属性

(2)获取和设置元素高度, 宽度: height(), width(). 在设 置值时, 若只传递数字, 则默认单位是 px. 如需要 使用其他单位则需传递一个字符串, 例如 $(“p:first”).height(“2em”);

(3)获取元素在当前视窗中的相对位移: offset(). 其返回对象包含了两个属性: top, left. 该方法只对可见元素有效

 

十五、jQuery 中的事件 -- 加载 DOM

在页面加载完毕后, 浏览器会通过 JavaScript 为 DOM 元素添加事件. 在常规 的 JavaScript 代码中, 通常使用 window.onload 方法, 在 jQuery 中使用 $(document).ready() 方法.

 

十六、事件绑定

(1)对匹配的元素进行特定的事件绑定

         bind()

(2)实例

 

十七、合成事件

(1)hover()

模拟光标悬停时间. 当光标移动到元 素上时, 会触发指定的第一个函数, 当光标移 出这个元素时, 会触发指定的第二个函数.

(2)toggle()

用于模拟鼠标连续单击事件. 第一次 单击元素, 触发指定的第一个函数, 当再一次 单击同一个元素时, 则触发指定的第二个函 数, 如果有更多个函数, 则依次触发, 直到最 后一个.

toggle() 的另一个作用: 切换元素的可见状态

 

十八、事件冒泡

(1)事件会按照 DOM 层次结构像水泡一样不 断向上只止顶端

(2)解决: 在事件处理函数中返回 false, 会对事 件停止冒泡. 还可以停止元素的默认行为.

 

十九、事件对象的属性

(1)事件对象

   当触发事件时, 事件对象就被创 建了. 在程序中使用事件只需要为函数添加 一个参数. 该事件对象只有事件处理函数才 能访问到. 事件处理函数执行完毕后, 事件 对象就被销毁了.

(2)event.pageX, event.pageY

    获取到光标相对 于页面的 x, y 坐标.

 

二十、移除事件

(1)移除某按钮上的所有 click 事件

    $(“btn”).unbind(“click”)

(2)移除某按钮上的所有事件:

     $(“btn”).unbind();

(3)one()

     该方法可以为元素绑定处理函数. 当处理函 数触发一次后, 立即被删除. 即在每个对象上, 事件 处理函数只会被执行一次.

$('a').one("click",function(){alert('just one click and remove");return false;
});

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net大户的选择:Windows Container在携程的应用

数人云上海&深圳两地“ 容器之Mesos/K8S/Swarm三国演义”的嘉宾精彩实录第四弹&#xff01;小数已经被接连不断的干货搞晕了&#xff0c;沉浸技术的海洋好幸福~Windows container在国内的实践还比较少&#xff0c;携程作为.Net大户&#xff0c;率先进行了调研和实践应用&am…

真正理解线程上下文类加载器(多案例分析)

转载自 真正理解线程上下文类加载器&#xff08;多案例分析&#xff09; 前置知识&#xff1a; java类加载器不完整分析 前言 此前我对线程上下文类加载器&#xff08;ThreadContextClassLoader&#xff0c;下文使用TCCL表示&#xff09;的理解仅仅局限于下面这段话&#x…

Docker4Dev #6 使用 Windows Container 运行.net应用

关于d4d系列&#xff1a;之前这个系列叫做docker4dotnet&#xff0c;因为当时主要是为了能够探索在docker上运行.net应用&#xff1b;现在我觉得应该叫做docker4developer&#xff0c;因为我希望能够帮助更多的开发人员使用docker技术。今天这篇就算是新的Docker4Dev系列的开始…

Windows 容器

什么是容器 它们是隔离、资源控制且可移植的操作环境。 基本上&#xff0c;容器是一个隔离的位置&#xff0c;应用程序可在其中运行&#xff0c;而不会影响系统的其他部分&#xff0c;并且系统也不会影响该应用程序。 容器是虚拟化的下一个演化。 如果你在容器内&#xff0c;看…

选择排序+推导过程

图解 代码实现 package com.atguigu.sort;import java.util.Arrays; import java.util.List;/*** 创建人 wdl* 创建时间 2021/3/21* 描述*/ public class SelectSort {public static void main(String[] args) {int []arr{101,34,119,1};System.out.println("排序前"…

Echart折线图 柱状图

echat_百度搜索 Examples - Apache ECharts Examples - Apache ECharts Examples - Apache ECharts 修改左侧的数据 点击右侧下载可以得到html页面 Examples - Apache ECharts Examples - Apache ECharts

软件定义数据中心—Windows Server SDDC技术与实践

《软件定义数据中心—Windows Server SDDC技术与实践》是国内第一本讲解微软Windows Server 软件定义数据中心的中文图书&#xff0c;书中系统、全面地介绍了微软Windows Server 软件定义数据中心各个模块&#xff08;SDS/SDN/SDC/容器&#xff09;的概念、技术和架构&#xff…

插入排序+思路分析

图解 代码实现 package com.atguigu.sort;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/22* 描述*/ public class InsertSort {public static void main(String[] args) {int[] arr{101,34,119,1};insertSort(arr);}//插入排序public static void insertSort(in…

.NET 十五岁,谈谈我眼中的.NET

2002年2月13日&#xff0c;第一个版本随着visual studio.net的发布&#xff0c;今天已经走过15年, .net团队写了一篇文章&#xff0c;里面有一个视频&#xff0c;Anders Hejlsberg已是白发苍苍的老人&#xff0c;我也从刚出校门的码农长成软件开发工程师&#xff0c;我爱编程。…

理解并从头搭建redis集群

部分开发人员工作当中只是在应用中使用redis&#xff0c;比如用来做数据结果的缓存。而且现在有很多不错的redis客户端工具(redisson)&#xff0c;基本上可以不用关注redis命令就可以完成相当部分的功能。所以可能会对如下这些问题关注点不够&#xff1a; 如何容灾&#xff1f;…

希尔排序+过程分析

图解 代码实现 package com.atguigu.sort;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/22* 描述*/ public class ShellSort {public static void main(String[] args) {int[] arr {8, 9, 1, 7, 2, 3, 5, 4, 6, 0};shellSort(arr);}//使用逐步推导的方式来编写…

Java 程序员必须掌握的 5 个注解

转载自 Java 程序员必须掌握的 5 个注解 自 JDK5 推出以来&#xff0c;注解已成为Java生态系统不可缺少的一部分。虽然开发者为Java框架&#xff08;例如Spring的Autowired&#xff09;开发了无数的自定义注解&#xff0c;但编译器认可的一些注解非常重要。 在本文中&#xff…

Docker4Dev#7 使用 Windows Container运行ASP.NET MVC 2 + SQLExpress 应用

上一篇Windows Container文章中给大家介绍了如何使用Windows Container运行一个传统的.net 4.5 web应用程序&#xff0c;当时我们使用了默认的Visual Studio模版创建了一个简单的项目&#xff0c;而且没有链接数据库。我相信使用.net进行应用开发的程序员们一定在想&#xff0c…

Mybatis+MySQL动态分页查询数据经典案例

最近在用Mybatis做项目的时候遇到了不少问题&#xff0c;今天我就在这和大家分享一下&#xff0c;稀稀拉拉的研究了两天&#xff0c;终于搞好了&#xff01;开发人员&#xff1a;1111开发软件&#xff1a;Myeclipse用到的框架技术&#xff1a;Mybatis数据库&#xff1a;MySql主…

那些年的骗子

中午一觉睡醒之后&#xff0c;忽然发现多年不联系的初中同学给我发了个消息&#xff0c;觉得事情没那么简单&#xff1a;正好我的公众号需要大量的用户&#xff0c;我就顺水推舟了&#xff01;一看到QQ的安全提示&#xff0c;我就感觉事情确实不妙&#xff01;初步推断对方是个…

干货 | 彻底弄懂 HTTP 缓存机制及原理

转载自 干货 | 彻底弄懂 HTTP 缓存机制及原理 前言 Http 缓存机制作为 web 性能优化的重要手段&#xff0c;对于从事 Web 开发的同学们来说&#xff0c;应该是知识体系库中的一个基础环节&#xff0c;同时对于有志成为前端架构师的同学来说是必备的知识技能。 但是对于很多…

Visual Basic的未来之路

上周&#xff0c;微软宣布了他们改变Visual Basic语言未来发展计划的想法。这次公布给Visual Basic开发人员留下了很多不确定性&#xff0c;但Visual Basic语言的设计者Anthony D.Green说明了这个新策略的一些细节。 Green首先列出了当时使用VB进行开发的四个基础指导原则&…

快速排序+思路分析

图解 代码实现 package com.atguigu.sort;import com.sun.org.apache.xpath.internal.WhitespaceStrippingElementMatcher;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/22* 描述*/ public class QuickSort {public static void main(String[] args) {//[-9,78,…

jquery sleep函数

function sleep(n) { //n表示的毫秒数 var start new Date().getTime(); while (true) if (new Date().getTime() - start > n) break; } console.log(new Date()); this.sleep(3000); console.log(new Date());

2017 年编程语言排行榜:Python 排第一

站长之家(ChinaZ.com) 7 月 24 日消息&#xff0c;近日根据 IEEE Spectrum 发布的研究报告显示&#xff0c;在 2016 年排名第三的 Python 在今年已经成为世界上最受欢迎的语言&#xff0c;C 和 Java 分别位居第二和第三位。IEEE Spectrum 的排行依据数据记者 Nick Diakopoulos …