WEB入门之十五 属性和样式

学习内容

  •  jQuery属性操作
  •  jQuery样式操作
  •  jQuery常用工具函数

能力目标

  •  能熟练使用jQuery进行属性操作
  •  能熟练使用jQuery进行样式操作
  •  能熟练使用jQuery中常见的工具函数 


本章简介

在前面几章的示例中,凡是牵涉到属性和样式操作的,我们依然是通过传统的DOM来实现的。本章将学习如何使用jQuery进行标签属性和CSS样式操作,jQuery提供了大量的函数来帮助开发人员简化对标签属性和CSS样式的操作。

核心技能部分

6.1 jQuery属性操作

每个标签都有各种各样的属性,因此属性操作在日常开发中非常频繁。jQuery提供了现成的一些函数来简化属性操作,详见表6-1-1所示。

6-1-1 属性操作函数

属性操作函数

说明

html ( )

设置或获取innerHTML属性的值

text ( )

设置或获取innerText属性的值

val ( )

设置或获取value属性的值

attr ( )

设置或获取某属性的值

removeAttr ( )

删除某属性

prop ( )

attr()作用一样,但是主要针对可简写的属性

removeProp ( )

删除某属性

addClass ( )

设置元素class属性的值

removeClass ( )

删除元素class属性的值

6.1.1 html()val()text()

html()val()是前面已经讲过并且经常使用的属性函数,这里不再多述。跟这两个函数很相似的还有一个text(),它是用来设置或获取innerText属性的值,即文本信息。




示例6.1






WEB入门之十五 属性和样式_第1张图片

6.1.1 attrremoveAttr

attrjQuery提供的对标签属性进行操作的通用函数,通过该函数可以操作大部分属性,常用方式见表6-1-2所示。

 

6-1-2  attr函数

attr函数

说明

attr ( "属性名" )

  按属性名获取某属性的值

attr ( "属性名" , 属性值)

  按属性名设置某属性的值

下面我们通过具体的示例来演示attr函数的用法,该示例实现了3张图片的轮换浏览,参考代码如下所示。

示例6.2




示例6.2



WEB入门之十五 属性和样式_第2张图片

removeAttr函数用来删除元素的某个属性,例如:

$("ad").removeAttr("src");

6.1.1 propremoveProp

propremovePropjQuery1.6版本新增的函数,prop除了具备attr函数的功能外,还增强了对可简写的属性的支持。

常见的可简写的属性有单选按钮和复选框的checked属性、下拉列表框的selected属性、readonly属性、disabled属性等。

例如:可简写成

可简写成可简写成

在使用JavaScript对可简写的属性进行操作时,通常使用truefalse作为属性的值。我们同样也可以使用jQuery中的attr函数对可简写的属性进行操作,但是在使用attr函数对可简写的属性进行设置操作时没有问题,进行取值操作时会出现问题,例如下面的代码。




示例6.3



全选
北京 上海 广州
WEB入门之十五 属性和样式_第3张图片

上述代码使用jQueryattr函数实现了全选/全不选效果,但是在运行时发现全选可以用,全不选则不能用。这是因为在使用attr函数获得checked属性的值时,如果复选框处于选中状态,则获得true;如果复选框处于未选中状态,则获得undefined,并非false。对于这个问题就可以使用prop来代替attr即可

在使用prop函数获取checked属性的值时,如果复选框处于未选中状态,那么返回false

6.1.1 addClassremoveClass

addClassremoveClass都是针对标签的class属性进行操作的函数,class属性用来设置标签的类样式,值为某个类样式的名字。下面通过一个示例来演示addClassremoveClass的用法。




示例6.4




	
用户登录
登录名称:
登录密码:
测试样式: 样式1 样式2
WEB入门之十五 属性和样式_第4张图片

6.1 jQuery样式操作

CSS样式如同网页的衣服,起到美化装饰的作用,必不可少。对CSS样式的操作是制作网页时经常要编写的代码,jQuery提供了诸多函数来简化对样式的操作,并提高了浏览器兼容性,详见表6-1-3所示。 

6-1-3  样式函数

分类

样式函数

说明

CSS样式

css ( )

获取或设置样式属性的通用函数

位置

offset ( )

获取或设置元素相对于浏览器窗口的位置

scrollTop ( )

获取或设置元素相对于滚动条顶部的位置

scrollLeft ( )

获取或设置元素相对于滚动条左端的位置

尺寸大小

height ( )

获取或设置元素的高度

width ( )

获取或设置元素的宽度

6.1.1 css ()函数

CSS的样式属性有很多,例如跟文本相关的样式属性有font-sizetext-align等;跟背景相关的样式属性有background-color、background-image等;跟盒子模型相关的样式属性有bordermarginpadding等;更定位相关的样式属性有topleftposition等。这些样式属性都可以通过jQuery中的css ( )函数进行操作,常用方式见表6-1-4所示。

6-1-4  css函数

css函数

说明

css( "属性名" )

按属性名获取某属性样式的值

css( "属性名" , 属性值)

按属性名设置某属性样式的值

下面我们通过一个示例来演示css函数的用法,参考代码如下所示。




示例6.5



	
用户登录
登录名称:
登录密码:
WEB入门之十五 属性和样式_第5张图片
上述代码通过css函数给文本框和密码框增加了获得/失去焦点时背景色改变的样式,鼠标悬浮/离开时边框颜色改变的样式
如果要使用css函数同时操作多个样式属性,那么可以参考示例6.5中的代码,语法归结如下所示:
jQuery元素 . css ( { "属性名" : 属性值 , "属性名" : 属性值 , ... ...} )
6.2.2位置函数
offset函数用来获取或设置元素相对于浏览器窗口的位置对象,可以通过该对象的left和top属性获取到准确的位置坐标。scorllLeft和scrollTop函数用来获取滚动条的偏移位置。下面我们使用这三个函数实现一个跟随滚动条滚动的图片,参考代码如下所示。



示例6.6




WEB入门之十五 属性和样式_第6张图片

上述代码使用offset函数获得了含有广告图片的div的具体位置,并通过scrollTopscrollLeft函数获得了滚动条的偏移位置,通过简单计算即可实现跟随滚动条滚动的广告图片

如果需要通过offset函数设置元素的具体位置,可以参考上述代码中的最后一行,语法归结如下:

jQuery元素 . offset ( { top : , left : } )

6.1.1 尺寸大小函数

尺寸通常指的是元素的宽和高,jQuery提供了heightwidth两个函数来获取某个元素的尺寸。下面实现一个弹出的广告,要求该广告居中显示。




示例6.7



WEB入门之十五 属性和样式_第7张图片

上述代码使用heightwidth函数分别获取到了页面的尺寸和广告div的尺寸,通过简单的计算可以得到居中位置

6.1 jQuery工具函数

jQuery提供了很多有用的工具函数来处理一些业务,这些函数都非常实用,详见表6-1-5所示。

6-1-5  工具函数

分类

工具函数

说明

浏览器检测

$.support

检测不同浏览器的特性,包含很多子属性

遍历操作

$.each ( )

遍历数组或对象,前面已经讲过

测试操作

$.type( )

测试数据的类型

$.isNumeric( )

测试对象是否是数字

字符串操作

$.trim( )

去掉字符串两端的空格

$.parseJSON( )

将字符串解析成JSON对象

6.1.1 浏览器检测

有时候需要检测浏览器的特性,例如是否支持盒子模型、是否支持tbody等等,这需要访问浏览器底层实现,比较复杂,并且不同浏览器的底层实现也不同,更增加了复杂度。jQuery提供了support来检测浏览器的特性,它包含了一些子属性,详见表6-1-6所示。

6-1-6  support子属性

support子属性

说明

boxModel

检测浏览器是否以W3C CSS子模型来渲染页面,通常在IE 6IE 7的怪癖模式中这个值是false。在document准备就绪前,这个值是null

leadingWhitespace

检测在使用innerHTML的时候浏览器是否会保持前导空白字符,目前在IE 6—8中返回false

tbody

浏览器允许table元素不包含tbody元素,则返回true。目前在IE中会返回false它会自动插入缺失的tbody

下面通过一个示例来演示support的功能,参考代码如下所示。

示例6.8




示例6.8







WEB入门之十五 属性和样式_第8张图片

6.1.1 测试操作

$.type( )用来测试数据的类型,$.isNumeric( )用来测试数据是否为数字,使用简单,下面是这两个函数的示例,参考代码如下所示。

示例6.9




示例6.9







WEB入门之十五 属性和样式_第9张图片

上述代码使用typeisNumeric函数对文本框的值进行了检测,运行效果如图6.1.12所示。

6.1 字符串操作

$.trim( )用来去除字符串两端的空格,$.parseJSON( )用来把字符串解析成JSON对象,两个函数都非常实用,下面是这两个函数的示例,参考代码如下所示。




示例6.10









WEB入门之十五 属性和样式_第10张图片

上述代码把文本框的值取出后先实用trim函数去除两端的空格,然后使用parseJSON函数把字符串转换成了JSON对象,最后就可以通过对象的属性来获取信息了

本章学习的内容分为四部分:属性操作、样式操作、工具函数和字符串操作。其中属性操作、样式操作和字符串操作使用频繁,大家必须掌握熟练。

任务实训部分

 

1:广告自动轮换

训练技能点

 jQuery属性操作函数

  需求说明

准备4张大小一样的广告图片,每隔2秒自动轮换显示

WEB入门之十五 属性和样式_第11张图片

实现思路

在网页上使用一个img标签显示图片,使用attr函数每隔2秒改变img标签src属性的

值。

关键代码





2:网页换肤

训练技能点

 jQuery属性操作函数

  需求说明

编写几个不同的内嵌样式,这些样式主要针对文本、背景色等,当在下拉列表框中选择不同的选项时,页面中的文字和背景应用不同的样式

实现步骤

(1) 实现图6.2.2所示的界面

(2) 在页面上定义几个类样式

(3) 当用户操作下拉列表框选择不同的选项时,改变样式,参考代码如下所示。






在前面几章的示例中,凡是牵涉到属性和样式操作的,我们依然是通过传统的DOM来实现的。本章将学习如何使用jQuery进行标签属性和CSS样式操作,jQuery提供了大量的函数来帮助开发人员简化对标签属性和CSS样式的操作。

WEB入门之十五 属性和样式_第12张图片

3:跟随鼠标的广告

训练技能点

jQuery位置函数

  需求说明

编码实现一个广告始终跟随鼠标移动并出现在鼠标的右下方

WEB入门之十五 属性和样式_第13张图片

4:表格显示特效

训练技能点

 jQuery样式操作函数

  需求说明

实现一个表格,当鼠标悬浮到某行时,该行的上下边框变为虚线;当鼠标离开该行时,该行的上下边框复原

巩固练习

一、选择题

1. 以下说法错误的是()。

A. val函数是对DOM中的value属性进行操作

B. html函数是对DOM中的innerHTML属性进行操作

C. text函数是对DOM中的innerText属性进行操作

D. 通过attr函数无法对DOM中的value属性进行控制

2. 以下说法正确的是()。

A. 通过attr函数设置的属性必须通过removeAttr函数移除

B. 通过prop函数设置的属性必须通过removeProp函数移除

C. 通过addClass函数设置的属性必须通过removeClass函数移除

D. prop函数跟attr函数很相似,但是prop函数对可简写的属性支持的更好

3. 以下关于jQuery样式操作函数说法正确的是()。

A. css函数一次只能对一个样式属性进行控制

B. offset函数只能用来获取位置信息

C. height函数只能用来获取元素的高度

D. offset函数获取的位置信息是相对于浏览器的

4. 以下关于jQuery工具函数说法正确的是()。

A. each函数相当于for循环遍历

B. trim函数可以去除字符串中的所有空格

C. parseJSON函数用来把JSON对象转为字符串

D. isNumeric( )用来测试数据是否为数字 

二、上机练习

 我们在第一章学习过JSON,现在请使用jQuery中的parseJSON函数把一个自定义的字符串解析为JSON对象并输出。


你可能感兴趣的:(前端技术,道本自然)