jQuery操作属性和样式详解


Posted in Javascript onApril 13, 2016

• 区分 DOM 属性和元素属性

<img src="images/image.1.jpg" id="hibiscus" alt="Hibiscus" class="classA" />

通常开发人员习惯将id,src,alt等叫做这个元素的"属性"。我们将其称为"元素属性"。但是在解析成 DOM 对象时,实际浏览器最后会将标签元素解析成"DOM 对象", 并且将元素的"元素属性"存储为"DOM 属性",两者是有区别的。

甚至有些"元素属性"和"DOM 属性"的名称都不一样,比如上面的元素属性 class, 转换为 DOM 属性后对应 className。

牢记, 在 javascript 中我们可以直接获取或设置"DOM 属性":

<script type="text/javascript">
  $(function() {
    var img1 = document.getElementById("hibiscus");
    alert(img1.alt);
    img1.alt = "Change the alt element attribute";
    alert(img1.alt);
    img1.className = "classB";
  })
</script>

所以如果要设置元素的 CSS 样式类, 要使用的是 DOM 属性"className"而不是元素属性"class"。
--------------------------------------------------------------------------------
•操作"Dom 属性"

在 jQuery 提供了each()函数用于遍历 jQuery 包装集,其中的this指针是一个 DOM 对象,所以我们可以应用这一点配合原生 javascript 来操作元素的 DOM 属性:

$("img").each(function(index) {
   alert("index:" + index + ", id:" + this.id + ", alt:" + this.alt);
   this.alt = "changed";
   alert("index:" + index + ", id:" + this.id + ", alt:" + this.alt);
 });

•操作"元素属性"

我们可以使用 javascript 中的getAttribute和setAttribute来操作元素的"元素属性"。在 jQuery 中给你提供了attr()包装集函数, 能够同时操作包装集中所有元素的属性:

jQuery操作属性和样式详解

虽然我们可以使用removeAttr(name)删除元素属性,但是对应的 DOM 属性是不会被删除的, 只会影响 DOM 属性的值.比如将一个input元素的readonly元素属性去掉,会导致对应的 DOM 属性变成false(即input变成可编辑状态).

•修改 CSS 类和样式

下表是修改 CSS 类相关的 jQuery 方法:

jQuery操作属性和样式详解

注意addClass(class)和removeClass(classes)的参数可以一次传入多个 css 类, 用空格分割。removeClass 方法的参数可选, 如果不传入参数则移除全部 CSS 类。

同样当我们想要修改元素的具体某一个 CSS 样式,即修改元素属性"style"时, jQuery 也提供了相应的方法:

jQuery操作属性和样式详解

• 获取常用属性

<!doctype html>
<html lang="zh">
<head>
 <meata charset="utf-8"/>
 <title>get object width</title>
 <script src="jquery-1.11.2.min.js"></script>
 <script>
  $(function() {
   alert("attr(\"width\"):" + $("#testDiv").attr("width")); //undifined
   alert("css(\"width\"):" + $("#testDiv").css("width")); //auto(ie6) 或 1264px(ff)
   alert("width():" + $("#testDiv").width()); //正确的数值 1264
   alert("style.width:" + $("#testDiv")[0].style.width); //空值
  })
 </script>
</head>
<body>
 <div id="testDiv">test text</div>
</body>
</html>

我们希望获取测试图层的宽度,使用 attr 方法获取"元素特性"为 undefined, 因为并没有为 div 添加 width。而使用 css()方法虽然可以获取到 style 属性的值, 但是在不同浏览器里返回的结果不同,IE6 下返回 auto,而 FF 下虽然返回了正确的数值但是后面带有"px"。所以 jQuery 提供了 width()方法,此方法返回的是正确的不带 px 的数值。

针对上面的问题,jQuery 为常用的属性提供了获取和设置的方法,比如 width()用户获取元素的宽度,而 width(val)用来设置元素宽度。

下面这些方法可以用来获取元素的常用属性值:

1. 宽和高相关 Height and Width

jQuery操作属性和样式详解     jQuery操作属性和样式详解

outerWidth 可以接受一个 bool 值参数表示是否计算 margin 值。

2. 位置相关 Positioning

jQuery操作属性和样式详解

以上这篇jQuery操作属性和样式详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript单元测试ABC
Apr 12 Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 Javascript
原生js和jquery分别实现横向导航菜单效果
May 13 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 jQuery
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
vue 设置 input 为不可以编辑的实现方法
Sep 19 Javascript
Vue的自定义组件不能使用click方法的解决
Jul 28 Javascript
原生js拖拽功能制作滑动条实例代码
Feb 05 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 #Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 #Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 #Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 #Javascript
更高效的使用JQuery 这里总结了8个小技巧
Apr 13 #Javascript
深入理解关于javascript中apply()和call()方法的区别
Apr 12 #Javascript
javascript中去除数组重复元素的实现方法【实例】
Apr 12 #Javascript
You might like
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
js中this的用法实例分析
2015/01/10 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python抓取网页图片并放到指定文件夹
2014/04/24 Python
从零学Python之引用和类属性的初步理解
2014/05/15 Python
使用Python的内建模块collections的教程
2015/04/28 Python
python、Matlab求定积分的实现
2019/11/20 Python
python3 求约数的实例
2019/12/05 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
超市采购员岗位职责
2014/02/01 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
故宫的导游词
2015/01/31 职场文书
《所见》教学反思
2016/02/23 职场文书
2017春节晚会开幕词
2016/03/03 职场文书