jQuery 控制属性和样式
标记的属性
each()遍历元素:each(callback)方法主要用于对选择器进行遍历,它接受一个函数为参数,该函数接受一个参数,指代元素的序号。
对于标记的属性而言,可以利用each()方法配合this关键字来获取或者设置选择器中每个元素相对应的属性值;
jQuery代码:
HTML代码:
理解:首先利用$(\”image\”)获取页面中所有图片的集合,然后通过each()方法遍历所有图片,通过this关键字对图片进行访问,获取图片的id,
并设置图片的title属性。其中each()方法的函数参数index为元素所处的序号(从0开始计数)。
jQuery代码:
HTML代码:
//使用jQuery中插件机制
获取属性的值
attr(name)
注意: 因为没有遍历,$(\”em\”).attr(\”title\”) 实际上获取的是第一个<em>元素的title属性值
$(\”em\”).attr(\”title\”) 等同于$(\”em:eq(1)\”).attr(\”title\”)
$(\”em\”).get(0).title 也是获取第一个<em>元素的title属性值, 而$(\”em\”).get(0)已经转换成DOM对象, 因此就不能使用jquery对象的attr方法
设置属性值
attr(name,value)
jQuery代码:
HTML代码:
通过位置选择器:gt(0),当单击第1个按钮时后面的两个按钮将同时禁用;
attr()方法还接受函数作为参数attr(name,fn),它的第2个参数为一个函数,该函数接受一个参数,为元素的序号,返回值为字符串;
jQuery代码
HTML代码:
用attr()方法接受属性列表
删除属性
removeAttr(name)删除属性相当于HTML的标记中不设置该属性, 并不是取消了该标记的这个特点。
小结:
$().attr(属性名称); //获得属性信息值
$().attr(属性名称,值); //设置属性的信息
$().removeAttr(属性名称); //删除属性
$().attr(json对象); //同时为多个属性设置信息值, json对象的键值对就是名称和值
$().attr(属性名称,fn); //通过fn函数执行的return返回值对属性进行赋值
获取属性的第二种方式:
设置元素的样式
添加、删除CSS类别
用addClass()方法添加CSS类别
用removeClass()方法删除CSS类别
希望某些元素的样式风格在某个类别之间切换,时而addClass()类别,时而removeClass()类别;
用toggleClass()方法在类别间动态切换 toggle 切换
实例:jQuery制作交替变幻的表格
直接获取、设置样式
jQuery提供css()方法来直接获取、设置元素的样式风格。使用方法与attr()几乎一模一样。
通过css(name)来获取某种样式风格的值;$(\”p\”).css(\”color\”);
通过css(properties)列表来同时设置元素的多种样式;$(\”p\”).css({ color: \”#ff0011\”, background: \”blue\” });
通过css(name,value)来设置元素的某种样式;$(\”p\”).css(\”color\”,\”red\”);
通过css(name,function(index, value))设置一个样式属性的值
css()样式操作特点:
此函数返回要设置的属性值。接受两个参数,index为元素在对象集合中的索引位置, value是原先的属性值。
1 样式获取,jquery可以获取行内、内部、外部的样式。dom方式只能获得行内样式
2 复合属性样式需要拆分为\”具体样式\”才可以操作
例如: background 需要拆分为 background-color background-image 等进行操作
border: border-left-style border-left-width border-left-color 等
margin: margin-left margin-top 等
也可以将样式属性写成驼峰式: backgroundColor, 可以不加引号。
在json对象中, 带横线的css属性(如font-size)必须加引号;
如:
标准格式:
css还支持获取属性值的方法, 保持原来的属性值(width()和css()两种方法)
与下面的语句等同:
以下代码为<p>标记添加了mouseover和mouseout事件,当这两个事件触发时通过css(name,value)来修改标记的颜色。
另外还可以通过hasClass(name)方法来判断某个元素是否设置了某个CSS类别,如何设置了则返回true,否则为false。
等同于$(\”li:last\”).is(\”.myClass\”)
在jQuery中其实hasClass方法内部调用的就是is()方法,只不过代码可读性更高一些;
小结:
class属性值操作
$().attr(\’class\’,值);
$().attr(\’class\’);
$().removeAttr(\’class属性\’); //删除class的属性
class具体快捷操作方法:
$().addClass(class属性值); //给class属性追加信息值
$().removeClass(class属性值); //删除class属性中的某个信息值
$().toggleClass(class属性值); //开关效果,有就删除,没有就添加
css样式操作
$().css(name,value); //设置
$().css(name); //获取
$().css(json对象); //同时修改多个css样式
CSS样式操作-宽高
width() 取得第一个匹配元素当前计算的宽度值(px)。
width(val) 为每个匹配的元素设置CSS宽度(width)属性的值; 如果没有明确指定单位(如:em或%), 默认使用px
height(100) height(\”100px\”) 后面含有单位的必须加引号
height() 取得第一个匹配元素当前计算的高度值
height(val) 为每个匹配的元素设置CSS高度(hidth)属性的值; 如果没有明确指定单位(如:em或%), 默认使用px
height(100) height(\”100px\”) 后面含有单位的必须加引号
jquery 选择器用法大全附实例代码
学习jquery必不可少的一项技能就是需要学会使用jquery查找和操作html元素,这就是jquery选择器,小叶总结了下面一篇文章在我们开发中常用的jquery选择器的方法,欢迎收藏。
以下是一些常用的 jQuery 选择器及其实例代码:
- $(\”element\”): 选择所有指定的元素。
- $(\”#id\”): 选择具有指定 ID 的元素。
- $(\”.class\”): 选择具有指定类的所有元素。
- $(\”[attribute]\”): 选择具有指定属性的所有元素。
- $(\”[attribute=value]\”): 选择具有指定属性值的元素。
- $(selector1, selector2): 在第二个选择器中查找第一个选择器。
- $(ancestor descendant): 选择祖先元素下的所有后代元素。
- $(prev + next): 选择紧接在 prev 元素后的 next 元素。
- $(prev ~ siblings): 选择 prev 元素之后的所有 siblings 元素。
- $(parent > child): 选择父元素下的所有子元素。
- $(\”:input\”): 选择所有表单输入元素(如 input、textarea、select)。
- $(\”:text\”): 选择所有单行文本框。
- $(\”:password\”): 选择所有密码框。
- $(\”:radio\”): 选择所有单选按钮。
- $(\”:checkbox\”): 选择所有复选框。
- $(\”:submit\”): 选择所有提交按钮。
- $(\”:reset\”): 选择所有重置按钮。
- $(\”:contains(text)\”): 选择包含指定文本的元素。
- $(\”:empty\”): 选择不包含子元素或文本的元素。
- $(\”:has(selector)\”): 选择包含特定后代元素的元素。
- $(\”:parent\”): 选择至少有一个子元素的元素。
如果你觉得这篇文章对你有用,欢迎点赞收藏加关注哦。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。