博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery dom
阅读量:5350 次
发布时间:2019-06-15

本文共 4223 字,大约阅读时间需要 14 分钟。

DOM(Document Object Model,文档对象模型)为文档提供了一种结构化表示方法,通过该方法可以改变文档的内容和展示形式。在实际运用中,DOM更像是桥梁,通过它可以实现跨平台、跨语言的标准访问。

单词Document即文档,当我们创建一个页面并加载到web浏览器时,dom模型则根据该页面的内容创建了一个文档文件;

单词Object即对象,是指具有独立特性的一组数据集合;

单词Model即模型,在页面文档中,通过树状模型展示页面的元素和内容,其展示的方式则是通过节点(node)来实现的。

1、访问元素

在操作中,元素的访问是最频繁、最常用的,主要包括对元素属性、内容、值、CSS的操作。

(1) 元素属性操作

a. 获取元素属性

获取元素属性的语法格式如:attr(name),其中,参数name表示属性的名称。

b. 设置元素属性

设置元素属性的语法格式如:attr(name,value),其中,参数name表示属性的名称,value表示属性的值 。

如果要设置多个属性,其语法格式如:attr({name0 : value0,name1 : value1})。

attr()方法还可以绑定一个function函数,通过该函数返回的值作为元素的属性值,其语法格式如:attr(key,function(index)),其中,参数index为当前元素的索引号,整个函数返回一个字符串作为元素的属性值。

c. 删除元素属性

使用removeAttr()方法可以将元素的属性删除,其语法格式为:removeAttr(name),其中,参数name为元素属性的名称。

(2) 元素内容操作

在jquery中,操作元素内容的方法包括html()和text()。前者与javascript中的innerHTML属性类似,即获取或设置元素的HTML内容;后者与javascript中的innerText属性,即获取或设置元素的文本内容;

a. html(),用于获取元素的html内容;

b. html(val),用于设置元素的html内容;

c. text(),用于获取元素的文本内容;

d. text(val),用于设置元素的文本内容;

注意:html()方法仅支持xhtml的文档,不能用于xml文档,而text()则既支持html文档,也支持xml文档。

(3) 获取或设置元素值

在jquery中,如果要获取元素的值,是通过val()方法实现的,其语法如:val(val),其中,如果不带参数val,则是获取某元素的值;反之,则是将参数val的赋给某元素,即设置元素的值。

通过val()方法还可以获取select标记中的多个选项值,其语法如:val().join(",")。

在val(val)方法中,如果有参数,其参数还可以是数组的形式,即val(array),其作用是设置元素被选中。

(4) 元素样式操作

元素样式的操作包含:直接设置样式、增加CSS类别、类别切换、删除类别。

a. 直接设置元素样式值 

通过css()方法为某个指定的元素设置样式值,其语法如:css(name, value),其中name为样式名称,value为样式的值。

b. 增加css类别

通过addClass()方法增加元素类别的名称,其语法如:addClass(name),其中,参数name为类别的名称。

也可以增加多个类别的名称,只需要用空格将其隔开即可,其语法如:addClass(name1,name2 ... )。

注意:使用addClass()方法仅是追加样式类别,即它还保存原有的类别。

c. 类别切换

通过toggleClass()方法切换不同的元素类别,其语法如:toggleClass(name),其中参数name为类别名称,其功能是当元素中含有名称为name的css类别时,删除该类别,否则增加一个该名称的css类别。

d. 删除类别

removeClass()方法用于删除类别,其语法如:removeClass([name]),其中,参数name为类别名称,该名称是可选项,当选该名称时,则删除名称是class的类别,有多个类别时用空格隔开。如果不选名称,则删除元素中的所有类别。

2、创建节点元素

函数$()用于动态创建页面元素,其语法格式如下:

$(html)

3、插入节点

按照插入元素的顺序来分:

(1) 内部插入节点方法

append(content):向所选择的元素内部插入内容;

append(fucntion(index,html)):向所选择的元素内部插入function函数所返回的内容;

appendTo(content):把所选择的元素追加到另一个指定的元素集合中;

prepend(content):向每个所选择的元素内部前置内容;

prepend(function(index,html)):向所选择的元素内部前置function函数所返回的内容;

prependTo(content):将所选择的元素前置到别一个指定的元素集合中;

 

    

Hello World!

Hello Tomorrow!

(2) 外部插入节点方法

after(content):向所选择的元素外部后面插入内容;

after(function):向所选择的元素外部后面插入function函数所返回的内容;

before(content):向所选择的元素外部前面插入内容;

before(function):向所选择的元素外部前面插入function函数所返回的内容;

insertAfter(content):将所选择的元素插入另一个指定的元素外部后面;

insertBefore(content):将所选择的元素插入另一个指定的元素外部前面;

 

    

Hello World!

Hello Tomorrow!

4、复制节点

在jquery中,通过方法clone()实现复制节点,其语法格式为:

clone()

其功能为复制匹配的dom元素并且选中复制成功的元素,该方法仅是复制元素本身,被复制后的新元素不具有任何元素行为。

如果需要在复制时将该元素的全部行为也进行复制,可以通过方法clone(true)实现,其语法格式为:

clone(true)

5、替换节点

(1) replaceWith(content)

将所有选择的元素替换成指定的html和dom元素,其中参数content为被所选择替换的内容。

(2) replaceAll(selector)

将所有选择的元素替换成指定selector的元素,其中参数selector为需要被替换的元素。

(3) replaceWith()与replaceAll()方法都可以实现元素节点的替换,二者最大的区别在于替换字符的顺序,前者是用括号中的字符替换所选择的元素,后者是用字符串替换括号中所选择的元素。同时,一旦完成替换,被替换元素中的全部事件都将消失。

 

    

Hello World!

Hello Tomorrow!

6、包裹节点

wrap(html):

html参数为字符串代码,用于生成元素并包裹所选元素;

把所有选择的元素用其他字符串代码包裹起来;

wrap(elem):

elem参数用包装所选元素的dom元素;

把所有选择的元素用其他dom元素包裹起来;

wrap(fn):

fn参数为包裹结构的一个函数;

把所有选择的元素用function函数返回的代码包裹起来;

unwrap():

无参数;

移除所选元素的父元素或包裹标记;

wrapAll(html):

html参数为字符串代码,用于生成元素并包裹所选元素;

把所有选择的元素用单个元素包裹起来;

wrapAll(elem):

elem参数用于包装所选元素的dom元素;

把所有选择的元素用单个dom元素包裹起来;

wrapInner(html):

html参数为字符串代码,用于生成元素并包裹所选元素;

把所有选择的元素的子内容(包括文本节点)用字符串代码包裹起来;

wrapInner(elem):

elem参数用于包裹所选元素的dom元素;

把所有选择的元素的子内容(包括文本节点)用dom元素包裹起来;

wrapInner(fn):

fn参数为包裹结构的一个函数 ;

把所有选择的元素的子内容(包括文本节点)用function函数返回的代码包裹起来;

wrap(html)与wrapInner(html)方法较为常用,前者包裹外部元素,后者包裹元素内部的文本字符。

 

    

Hello World!

Hello Tomorrow!

7、遍历元素

在jquery中,可以使用each()方法实现元素的遍历。

其语法格式如下:

each( callback )

参数callback是一个function函数,该函数可以接受一个形参index,此形参为遍历元素的序号(从0开始);如果需要访问元素的属性,可以借助形参index,配合this关键字来实现元素属性的设置或获取。

8、删除元素

jquery提供了两种可以删除元素的方法:

(1) remove()

其语法格式如下:

remove( [expr] )

参数expr为可选项,如果接受参数,则该参数为筛选元素的jquery表达式,通过该表述式获取指定的元素,并进行删除。

(2) empty()

其语法格式如下:

empty(),其功能为清空所选择的页面元素或所有的后代元素。

严格来说,empty()方法并非真正意义上的删除,使用该方法,仅仅可以清空全部的节点或节点所包括的所有后代元素,并非删除节点和元素。

转载于:https://www.cnblogs.com/pengjielee/p/jquery-dom.html

你可能感兴趣的文章
解决VC++6.0 无法打开、无法添加工程文件
查看>>
ORA-01858: a non-numeric character was found where a numeric was expected
查看>>
Structure From Motion(二维运动图像中的三维重建)
查看>>
25复杂链表的复制
查看>>
2 Orchard汉化资源包的使用
查看>>
python3 property
查看>>
自定义控件注意点
查看>>
SSRS 报表 如何匿名查看
查看>>
JVM内存管理机制
查看>>
centos 安装Mysql
查看>>
简单通用Ajax函数
查看>>
【Android】ListView监听上下滑动(判断是否显示返回顶部按钮
查看>>
HBASE的MAPREDUCE任务运行异常解决办法,无需CYGWIN,纯WINDOWS环境
查看>>
禅道在docker上部署与迁移
查看>>
关于继承、封装、多态、抽象和接口
查看>>
c27---typedef
查看>>
android WebViewClient和WebChromeClient
查看>>
div+css清除浮动代码
查看>>
017Python路--解释器
查看>>
idea2019中utf-8乱码问题
查看>>