jQuery 控制属性和样式
itomcoil 2025-05-24 14:44 2 浏览
标记的属性
each()遍历元素:each(callback)方法主要用于对选择器进行遍历,它接受一个函数为参数,该函数接受一个参数,指代元素的序号。
对于标记的属性而言,可以利用each()方法配合this关键字来获取或者设置选择器中每个元素相对应的属性值;
jQuery代码:
$(function(){
$("img").each(function(index){
this.title = "这是第" + index + "幅图,id是:" + this.id; //此时this指DOM对象
});
});
HTML代码:
<img src="01.jpg" id="Tsinghua01">
<img src="02.jpg" id="Tsinghua02">
<img src="03.jpg" id="Tsinghua03">
<img src="04.jpg" id="Tsinghua04">
<img src="05.jpg" id="Tsinghua05">
理解:首先利用$("image")获取页面中所有图片的集合,然后通过each()方法遍历所有图片,通过this关键字对图片进行访问,获取图片的id,
并设置图片的title属性。其中each()方法的函数参数index为元素所处的序号(从0开始计数)。
jQuery代码:
$(function(){
$("img").each(function(index, item){
item.title = "这是第" + index + "幅图,id是:" + this.id; //此时item指当前的DOM对象
});
});
HTML代码:
<img src="01.jpg" id="Tsinghua01">
<img src="02.jpg" id="Tsinghua02">
<img src="03.jpg" id="Tsinghua03">
<img src="04.jpg" id="Tsinghua04">
<img src="05.jpg" id="Tsinghua05">
//使用jQuery中插件机制
$.fn.extend({
quanxuan:function(){
//专用于实现全选
this.attr("checked",true);
},
quxiao:function(){
//取消功能
this.attr("checked",false);
},
fanxuan:function(){
//反选
var leng = this.length;
this.each(function(index,domElement){ //this指jQuery对象
domElement.checked = !domElement.checked; //domElement= this this指DOM对象
})
}
});
获取属性的值
attr(name)
$(function(){
//var sTitle = $("em").attr("title"); //获取第一个<em>元素的title属性值
var sTitle = $("em:eq(1)").attr("title"); //获取第二个<em>元素的title属性值
$("span").text(sTitle);
});
注意: 因为没有遍历,$("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)
$("a[href^=http://]").attr("target","_blank")
jQuery代码:
function DisableBack(){
$("button:gt(0)").attr("disabled","disabled");
}
HTML代码:
<button onclick="DisableBack()">第一个Button</button>
<button>第二个Button</button>
<button>第三个Button</button>
通过位置选择器:gt(0),当单击第1个按钮时后面的两个按钮将同时禁用;
attr()方法还接受函数作为参数attr(name,fn),它的第2个参数为一个函数,该函数接受一个参数,为元素的序号,返回值为字符串;
jQuery代码
$(function(){
$("div").attr("id", function(index){
//将id设置为序号相关的参数
return "div-id" + index;
}).each(function(){
//找到每一项的span标记
$(this).find("span").html("(id='" + this.id + "')");
});
});
HTML代码:
<div>第0项 <span></span></div>
<div>第1项 <span></span></div>
<div>第2项 <span></span></div>
用attr()方法接受属性列表
$(function(){
$("img").attr({
src: "06.jpg",
title: "紫荆公寓",
width:300, //参考HTML语法, 无需加单位, 也可以写成 widht:"300px" 加单位必须加引号
alt: "紫荆公寓"
});
});
删除属性
$("button").removeAttr("disabled");
removeAttr(name)删除属性相当于HTML的标记中不设置该属性, 并不是取消了该标记的这个特点。
小结:
$().attr(属性名称); //获得属性信息值
$().attr(属性名称,值); //设置属性的信息
$().removeAttr(属性名称); //删除属性
$().attr(json对象); //同时为多个属性设置信息值, json对象的键值对就是名称和值
$().attr(属性名称,fn); //通过fn函数执行的return返回值对属性进行赋值
获取属性的第二种方式:
$("input[type='checkbox']").prop("checked");
设置元素的样式
添加、删除CSS类别
用addClass()方法添加CSS类别
$(function(){
//同时添加多个CSS类别
$("div").addClass("myClass1 myClass2"); //增加多个CSS类别,用空格隔开
});
用removeClass()方法删除CSS类别
希望某些元素的样式风格在某个类别之间切换,时而addClass()类别,时而removeClass()类别;
用toggleClass()方法在类别间动态切换 toggle 切换
$(function(){
$("p").click(function(){
//点击的时候不断切换
$(this).toggleClass("highlight");
});
});
实例:jQuery制作交替变幻的表格
<html>
<head>
<title>交替变幻的表格</title>
<style>
<!--
.datalist{
border:1px solid #007108; /* 表格边框 */
font-family:Arial;
border-collapse:collapse; /* 边框重叠 */
background-color:#d9ffdc; /* 表格背景色 */
font-size:14px;
}
.datalist th{
border:1px solid #007108; /* 行名称边框 */
background-color:#00a40c; /* 行名称背景色 */
color:#FFFFFF; /* 行名称颜色 */
font-weight:bold;
padding-top:4px; padding-bottom:4px;
padding-left:12px; padding-right:12px;
text-align:center;
}
.datalist td{
border:1px solid #007108; /* 单元格边框 */
text-align:left;
padding-top:4px; padding-bottom:4px;
padding-left:10px; padding-right:10px;
}
.datalist tr.altrow{
background-color:#a5e5aa; /* 隔行变色 */
}
-->
</style>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
$(function(){
$("table.datalist tr:nth-child(odd)").addClass("altrow");
$("table").mouseover(function(){
$("tr:gt(0)").toggleClass("altrow");
});
$("table").mouseout(function(){
$("tr:gt(0)").toggleClass("altrow");
});
});
</script>
</head>
<body>
<table class="datalist" summary="list of members in EE Studay" id="oTable">
<tr>
<th scope="col">Name</th>
<th scope="col">Class</th>
<th scope="col">Birthday</th>
<th scope="col">Constellation</th>
<th scope="col">Mobile</th>
</tr>
<tr>
<td>isaac</td>
<td>W13</td>
<td>Jun 24th</td>
<td>Cancer</td>
<td>1118159</td>
</tr>
<tr>
<td>fresheggs</td>
<td>W610</td>
<td>Nov 5th</td>
<td>Scorpio</td>
<td>1038818</td>
</tr>
<tr>
<td>girlwing</td>
<td>W210</td>
<td>Sep 16th</td>
<td>Virgo</td>
<td>1307994</td>
</tr>
<tr>
<td>tastestory</td>
<td>W15</td>
<td>Nov 29th</td>
<td>Sagittarius</td>
<td>1095245</td>
</tr>
</table>
</body>
</html>
直接获取、设置样式
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)必须加引号;
如:
$('div').css({"font-size":"40px","font-weight":"bold",color:"red"});
标准格式:
$('div').css({"font-size":"40px","font-weight":"bold","color":"red"});
css还支持获取属性值的方法, 保持原来的属性值(width()和css()两种方法)
oInput.val(tdText).css({'width':oTd.width(), 'font-size':'14px','font-weight':'bold', 'border':0,
'background-color':oTd.css('background-color')});
与下面的语句等同:
oInput.val(tdText).css('width',tdObj.width()).css('font-size','14px').css('font-weight','bold').
css('border-width',0).css('background-color',oTd.css('background-color'));
$("div").click(function() {
$(this).css({
width: function(index, value) {
return parseFloat(value) * 1.2;
},
height: function(index, value) {
return parseFloat(value) * 1.2;
}
});
});
以下代码为<p>标记添加了mouseover和mouseout事件,当这两个事件触发时通过css(name,value)来修改标记的颜色。
$(function(){
$("p").mouseover(function(){
$(this).css("color","red");
});
$("p").mouseout(function(){
$(this).css("color","black");
});
});
另外还可以通过hasClass(name)方法来判断某个元素是否设置了某个CSS类别,如何设置了则返回true,否则为false。
$("li:last").hasClass("myClass")
等同于$("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") 后面含有单位的必须加引号
相关推荐
- 点过的网页会变色?没错,这玩意把你的浏览记录漏光了
-
提起隐私泄露这事儿,托尼其实早就麻了。。。平时网购、换手机号、注册各种账号之类的都会咔咔泄露,根本就防不住。但托尼真是没想到,浏览器里会有一个看起来完全人畜无害的功能,也在偷偷泄露我们的个人隐私,而且...
- Axure教程:高保真数据可视化原型
-
本文将介绍如何制作Axure高保真数据可视化原型,供大家参考和学习。高保真数据可视化原型设计,称得上是Axure高阶水平。数据可视化在原型设计中是一个重要的分支,但是对于Axure使用者具有一定要求。...
- Flutter web开发中禁用浏览器后退按钮
-
路由采用的go-router路由框架:finalrootNavigatorKey=GlobalKey<NavigatorState>();finalGoRouterrouter...
- jQuery 控制属性和样式
-
标记的属性each()遍历元素:each(callback)方法主要用于对选择器进行遍历,它接受一个函数为参数,该函数接受一个参数,指代元素的序号。对于标记的属性而言,可以利用each()方法配合th...
- 微信小程序入门教程之二:页面样式
-
这个系列的上一篇教程,教大家写了一个最简单的Helloworld微信小程序。但是,那只是一个裸页面,并不好看。今天接着往下讲,如何为这个页面添加样式,使它看上去更美观,教大家写出实际可以使用的页...
- 如何在Windows11的任务栏中禁用和删除天气小部件图标?
-
微软该公司已在Windows11的任务栏中添加了一个天气小部件图标,作为小部件的入口点。这个功能与之前Win10上的新闻与资讯功能相同,但是有的用户不喜欢想要关闭,不知道如何操作,下面小编为大家带来...
- CSS伪类选择器大全:提升网页交互与样式的神奇工具
-
CSS伪类选择器是前端开发中不可或缺的强大工具,它们允许我们根据元素的状态、位置或用户行为动态地应用样式。本文将全面介绍常用的伪类选择器,并通过代码示例展示其实际应用场景。一、基础交互伪类1.超链接...
- 7个Axure使用小技巧
-
编辑导读:对于Axure原型工具,很少有产品经过系统学习,一般都是直接上手,边摸索边学习,这直接导致很多快捷操作被忽视。笔者在日常工作中总结出以下小技巧,希望对各位有帮助。之前整理了2期Axure的...
- JavaScript黑暗技巧:禁止浏览器点击“后退”按钮
-
浏览网页时,当从A页面点击跳转到B页面后,一般情况下,可以点击浏览器上的“后退”按钮返回A页面。如果进入B页面后,B页面想让访问者留下,禁止返回,是否可以实现呢?这简直是要控制浏览器的行为,虽然有些邪...
- 对齐PyTorch,一文详解OneFlow的DataLoader实现
-
撰文|赵露阳在最新的OneFlowv0.5.0版本中,我们增加了许多新特性,比如:新增动态图特性:OneFlow默认以动态图模式(eager)运行,与静态图模式(graph)相比,更容易搭建网...
- Python计算机视觉编程 第一章 基本的图像操作和处理
-
以下是使用Python进行基本图像操作和处理的示例代码:使用PIL库加载图像:fromPILimportImageimage=Image.open("image.jpg"...
- PyTorch 深度学习实战(31):可解释性AI与特征可视化
-
在上一篇文章中,我们探讨了模型压缩与量化部署技术。本文将深入可解释性AI与特征可视化领域,揭示深度学习模型的决策机制,帮助开发者理解和解释模型的内部工作原理。一、可解释性AI基础1.核心概念特征重要...
- 学习编程第177天 python编程 富文本框text控件的使用
-
今天学习的是刘金玉老师零基础Python教程第72期,主要内容是python编程富文本框text控件。一、知识点1.tag_config方法:利用某个别名作为标签,具体的对应标签的属性功能配置在后面参...
- 用Python讓電腦攝像頭實現掃二維碼
-
importsys#系統模組,用來存取命令列參數與系統功能importcv2#OpenCV,處理影像與相機操作importnumpyasnp#Numpy,用來處理數值與...
- 使用Transformer来做物体检测
-
作者:JacobBriones编译:ronghuaiyang导读这是一个Facebook的目标检测Transformer(DETR)的完整指南。介绍DEtectionTRansformer(D...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)