jQuery DOM 操作

创建元素

只需要把DOM字符串传入$方法即可返回一个 jQuery 对象

var obj = $('<div class="test"><p><span>Done</span></p></div>')

添加元素

.append()

在 a 标签里面添加内容是b的p标签

$( "a" ).append( "<p>b</p>" )

JSBin

其他例子

$( ".inner" ).append( "<p>Test</p>" )
$( "p" ).append( "<strong>Hello</strong>" )
$( "p" ).append( $( "strong" ) )

.appendTo()

相反,把对象插入到目标元素尾部。
即在 a 标签 里面添加内容是b的p标签

$( "<p>b</p>" ).appendTo( "a" )

JSBin

.prepend()

向对象头部追加内容,用法和append类似,内容添加到最开始

$( ".inner" ).prepend( "<p>Test</p>" )

.prependTo()

也是相反,把对象插入到目标元素头部。用法和prepend类似

$( "<p>Test</p>" ).prependTo( ".inner" )

.before()

在对象前面(不是头部,而是外面,相当于插入进来变成邻居)插入内容。传递参数和append类似

$( ".inner" ).before( "<p>Test</p>" )

JSBin

.insertBefore()

相反,把<p>Test</p>对象插入到.inner之前(同样不是头部,是同级)

$( "<p>Test</p>" ).insertBefore( ".inner" )

JSBin

.after()

before相反,在对象后面(不是尾部,而是外面,和对象并列同级)插入内容。参数传递和append类似

$( ".inner" ).after( "<p>Test</p>" )

JSBin

..insertAfter()

<p>Test</p>插入到.inner之后,同前面的.insertBefore用法

$( "<p>Test</p>" ).insertAfter( ".inner" )

JSBin

删除元素

.remove()

删除被选元素(及其子元素)

$("#div1").remove();

JSBin

也可以添加一个可选的选择器参数来过滤匹配的元素

$('div').remove('.test')

JSBin

.empty()

清空被选择元素内所有子元素

$('body').empty()

.detach()

.detach() 和.remove()一样,但 .detach()保存所有 jQuery 数据和被移走的元素相关联。
当需要移走一个元素,不久又将该元素插入DOM时,这种方法很有用。

包裹元素

.wrap()

为每个对象包裹一层HTML结构

<div class="container">
<div class="inner">Hello</div>
<div class="inner">World</div>
</div>

使用包裹元素

$( ".inner" ).wrap( "<div class='new'></div>" )

查看结果

<div class="container">
<div class="new">
<div class="inner">Hello</div>
</div>
<div class="new">
<div class="inner">World</div>
</div>
</div>

.wrapAll()

把所有匹配对象包裹在同一个HTML结构中

<div class="container">
<div class="inner">Hello</div>
<div class="inner">World</div>
</div>

包裹元素

$( ".inner" ).wrapAll( "<div class='new' />")

查看结果

<div class="container">
<div class="new">
<div class="inner">Hello</div>
<div class="inner">World</div>
</div>
</div>

.wrapInner()

把匹配对象里层包裹一个HTML结构

<div class="container">
<div class="inner">Hello</div>
<div class="inner">World</div>
</div>

包裹元素

$( ".inner" ).wrapInner( "<div class='new'></div>")

查看结果

<div class="container">
<div class="inner">
<div class="new">Hello</div>
</div>
<div class="inner">
<div class="new">World</div>
</div>
</div>

.unwrap()

把DOM元素的parent移除,但保留HTML内容。

关于 Text 和 Html

.html()

这是一个读写两用的方法,用于获取/修改元素的innerHTML

  • 当没有传递参数的时候,返回元素的innerHTML
  • 当传递了一个string参数的时候,修改元素的innerHTML为参数值

范例

$('div').html()

$('div').html('123')

JSBin output

 

.text()

.html()类似,操作的是对应原生DOM里面的innerText

$('div').text()
$('div').text('123')

JSBin output

 

原生JS操作DOM回顾

.html() 和 .text() 的区别

即和原生DOM操作中innerHTMLinnerText的区别类似

innerHTML属性作用和innerText类似,但是不是返回元素的文本内容,而是返回元素的HTML结构
innerText是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容。

innerHTML容易产生安全问题,即 xss 攻击。

jQuery 属性/CSS操作

属性相关

.val()

是一个读写双用的方法,用来处理inputvalue,当方法没有参数的时候返回inputvalue值,当传递了一个参数的时候,方法修改inputvalue值为参数值

$('input').val()

$('input').val('newValue')

.attr()

获取元素特定属性的值

$( "em" ).attr( "title" )   //获取em标签的titile属性值

为元素属性赋值

$( "#greatphoto" ).attr({
alt: "Beijing Brush Seller",
title: "photo by Kelly Clark"
});

.removeAttr()

为匹配的元素集合中的元素移除一个属性(attribute)

$('div').removeAttr('id')  //移除div标签的id属性

.removeAttr()方法使用原生的 JavaScript removeAttribute()函数,但是它的优点是可以直接在一个 jQuery 对象上调用该方法,并且它解决了跨浏览器的属性名不同的问题。

.prop() / .removeProp()

这两个方法是用来操作元素的property的,propertyattibute是非常相似的概念,详情参考 jQuery的 attr 与 prop

CSS 操作

.css()

.css(propertyName) / .css(propertyNames)

使用和attr相似,用来处理元素的css
获取元素style特定property的值

var color = $( this ).css( "background-color" )

var styleProps = $( this ).css([
"width",
"height",
"color",
"background-color"
])

.css(propertyName,value)

设置元素style特定property的值

$( this ).css( "background-color", "yellow" )

$( this ).css({
"background-color": "yellow", //有中横线的也可以使用驼峰命名法,但不能在外层加""
"font-weight": "bolder"
})

.addClass() / .removeClass()

.addClass()

为元素添加class,不是覆盖原class,是追加,也不会检查重复

$( "p" ).addClass( "active" )   //给p标签添加active css样式

.removeClass()

移除元素单个/多个/所有class

$( "p" ).removeClass( "active" )   //给p标签移除active css样式

.hasClass()

检查元素是否包含某个class,返回true / false

$( "#mydiv" ).hasClass( "active" )  //检查id为mydiv的元素是否包含active css样式

.toggleClass()

toggle是切换的意思,方法用于切换

<div class="test">hello world</div>

第一次执行

$( "div.test" ).toggleClass( "new" )

<div class="test new">hello world</div>

第二次执行

$( "div.test" ).toggleClass( "new" )
<div class="test">hello world</div>

使用案例

利用 jQuery 属性 CSS操作 实现闪烁效果 Demo

实现播放器ICON按钮切换效果
方法1
方法2

jQuery DOM/属性/CSS操作的更多相关文章

  1. 第一百六十六节,jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度、偏移、滚动条

    jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度.偏移.滚动条 学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 ...

  2. 基础DOM和CSS操作(一)

    DOM简介 DOM是一种文档对象模型,方便开发者对HTML结构元素内容进行展示和修改.在JavaScript中,DOM不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性.扩展性.在jQuery ...

  3. 基础DOM和CSS操作(三)

    CSS方法 jQuery不但提供了CSS的核心操作方法,比如.css()..addClass()等.还封装了一些特殊功能的CSS操作方法,我们分别来了解一下. width()方法 方法名 描述 wid ...

  4. 基础DOM和CSS操作(二)

    元素样式操作 元素样式操作包括了直接设置CSS样式.增加CSS类别.类别切换.删除类别这几种操作方法.而在整个jQuery使用频率上来看,CSS样式的操作也是极高的,所以需要重点掌握. CSS操作方法 ...

  5. jQuery基础DOM和CSS操作

    $('#box').html();//获取 html 内容$('#box').text();//获取文本内容,会自动清理 html 标签$('#box').html('<em>www.li ...

  6. Jquery5 基础 DOM 和 CSS 操作

    学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 5.CSS 方法 DOM 是一种文档对象模型.方便开发者对HTML 结构元素内容进行展示和修改.在 JavaScr ...

  7. jquery知识 属性 css

    jquery基础知识 属性 css <!doctype html> <html lang="en"> <head> <meta chars ...

  8. jquery 学习(五) - CSS 操作

    HTML + CSS 样式 /*CSS样式*/<style> body{ margin: 0; } div{ width: 100%; height: 2000px; background ...

  9. jQuery(基础dom及css操作)

    设置元素内容 元素属性操作 ---------- 元素样式操作 ---------------- 对象数组的遍历 测试代码: $(function () { var v=$('div').css([' ...

随机推荐

  1. Opencv2.4.13与Visual Studio2013环境搭建配置教程

    转载:http://www.jb51.net/article/108943.htm 一.安装包的下载与安装 Opencv可免费到官网上去下载,opencv是国外软件,在下载是由于受资源的限制,可能会出 ...

  2. Linux 虚拟机的计划维护

    Azure 定期执行更新,以提高虚拟机的主机基础结构的可靠性.性能及安全性. 此类更新包括修补宿主环境(例如操作系统.虚拟机监控程序以及主机上部署的各种代理)中的软件组件.升级网络组件以及硬件解除授权 ...

  3. JBOSS参数调优

        阅读目录 JBOSS参数调优 jvm调优讲解1 JVM调优讲解2 JVM常见配置汇总 JBOSS生产环境下JVM调优 JBOSS瘦身 JBoss性能优化:内存紧张的问题终于解决了(转载)--- ...

  4. ipsec验证xl2tpd报错:handle_packet: bad control packet!

    使用ipsec和xl2tpd搭建好vpn后,使用ipsec密钥方式不能连接,显示 “连接的时候被远程服务器中止” 使用xl2tpd -D查看连接情况,尝试连接了许多次,错误如下: 开始不确定问题所在, ...

  5. hearbeat

    heartbeat介绍: 作用: 通过heartbeat,可以将资源(IP及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用服务.在升级生产应用场景 ...

  6. 10个出色的NoSQL数据库(转)

    随着大数据的不断发展,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.现今的计算机体系结构在数据存储方面要有庞大的水平扩展性,而NoSQL也正是致力于改变这一现状.目前G ...

  7. Ios国际化翻译工具

    IOS Translation Tool(IOS国际化翻译工具) 介绍 当IOS项目国际化的时候,手工去翻译每一个字符串是一件非常痛苦的事情.尤其是当项目中存在N多种语言.而且又很难保证,手工翻译的准 ...

  8. UVa 11584 - Partitioning by Palindromes(线性DP + 预处理)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. 输出预测边界框,NMS非极大值抑制

    我们预测阶段时: 生成多个锚框 每个锚框预测类别和偏移量 但是,当同一个目标上可能输出较多的相似的预测边界框.我们可以移除相似的预测边界框.——NMS(非极大值抑制). 对于一个预测边界框B,模型会计 ...

  10. CF739B Alyona and a tree

    嘟嘟嘟 前缀和+倍增+树上差分 假设\(v\)是\(u\)子树中的一个点,那么\(u\)能控制\(v\)的条件是受\(v\)的权值的限制,而并非\(u\).因此我们就能想到计算每一个点的贡献,即\(v ...