百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

jQuery 控制属性和样式(jquery控制css样式)

zhezhongyun 2025-03-20 21:01 12 浏览

标记的属性

each()遍历元素:each(callback)方法主要用于对选择器进行遍历,它接受一个函数为参数,该函数接受一个参数,指代元素的序号。

对于标记的属性而言,可以利用each()方法配合this关键字来获取或者设置选择器中每个元素相对应的属性值;

jQuery代码:

$(function(){
    $("img").each(function(index){
        this.title = "这是第" + index + "幅图,id是:" + this.id; //此时this指DOM对象
    });
});

HTML代码:





理解:首先利用$("image")获取页面中所有图片的集合,然后通过each()方法遍历所有图片,通过this关键字对图片进行访问,获取图片的id,

并设置图片的title属性。其中each()方法的函数参数index为元素所处的序号(从0开始计数)。

jQuery代码:

$(function(){
    $("img").each(function(index, item){
        item.title = "这是第" + index + "幅图,id是:" + this.id; //此时item指当前的DOM对象
    });
});

HTML代码:





//使用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"); //获取第一个元素的title属性值
    var sTitle = $("em:eq(1)").attr("title"); //获取第二个元素的title属性值
    $("span").text(sTitle);
});

注意: 因为没有遍历,$("em").attr("title") 实际上获取的是第一个元素的title属性值

$("em").attr("title") 等同于$("em:eq(1)").attr("title")

$("em").get(0).title 也是获取第一个元素的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代码:

 
 
 

通过位置选择器: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代码:

第0项
第1项
第2项

用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制作交替变幻的表格



交替变幻的表格

<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>


Name Class Birthday Constellation Mobile
isaac W13 Jun 24th Cancer 1118159
fresheggs W610 Nov 5th Scorpio 1038818
girlwing W210 Sep 16th Virgo 1307994
tastestory W15 Nov 29th Sagittarius 1095245

直接获取、设置样式

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;
        }
    });
});

以下代码为

标记添加了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") 后面含有单位的必须加引号

相关推荐

JPA实体类注解,看这篇就全会了

基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...

Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用

开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...

用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码

在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...

B 客户端流RPC (clientstream Client Stream)

客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...

我的模型我做主02——训练自己的大模型:简易入门指南

模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...

开源项目MessageNest打造个性化消息推送平台多种通知方式

今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...

使用投机规则API加快页面加载速度

当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...

JSONP安全攻防技术

关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

大数据Doris(六):编译 Doris遇到的问题

编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...

网页内嵌PDF获取的办法

最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...

印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死

微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...

下周重要财经数据日程一览 (1229-0103)

下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...

PyTorch 深度学习实战(38):注意力机制全面解析

在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...

聊聊Spring AI的EmbeddingModel

序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...

前端分享-少年了解过iframe么

iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...