jQuery如何增加、修改、删除一个jQuery对象的class类

欢迎访问我的个人博客 http://xiaolongwu.cn/

首先需要说明,一个HTML标签的class属性可以有多个class类名,并用空格隔开,这些class类名会同时起作用。如果出现两个以上的class类设置了相同的css样式,则会根据这些class类在css文件和style标签中加载的先后顺序,后面的覆盖前面的,和HTML标签中class属性的类名前后没有关系。

以下方法中,被操作的class类名均不带(.)这个class类的选择器符号!

  • 增加一个class类
//增加一个bbb的class类,aaa与bbb同时存在
 $(".aaa").addClass("bbb");
  • 删除一个class类
//删除aaa这个class类
$(".aaa").removeClass("aaa");
  • 修改一个class类
//方法一
    //先删除,后添加。或者先添加后删除均可
    $(".aaa").addClass("bbb").removeClass("aaa");
    $(".aaa").removeClass("aaa").addClass("bbb");
//方法二
    //利用attr方法
    $(".aaa").attr("class","bbb");
    //这里需要注意的是,如果这个HTML标签不止有aaa这一个类时,
    //这个方法之后,这个HTML标签会只有bbb这一个class类,

    //当然也可以设置多个
    $(".aaa").attr("class","bbb ccc ddd");
  • 判断是否存在一个class类
//判断HTML标签中是否有bbb这个class
$(".aaa").hasClass("bbb");
//返回值是一个boolean值,存在返回true,不存在返回false
  • 实例
//实现一个hover功能,鼠标上去为aaa,离开为bbb
$(".ccc").hover(function () {
    $(this).addClass("aaa");
    $(this).removeClass("bbb");
}, function () {
    $(this).addClass("bbb");
    $(this).removeClass("aaa");
}); 
你可以使用 jQuery 的 `:last` 选择器或 `.last()` 方法来选择一组元素中的最后一个元素。假设你有一个循环生成的多个 `div`,它们都具有相同的 class(例如 `item`),你想选中这些 `div.item` 中的**最后一个**,并修改其 CSS 样式。 ### 示例 HTML 结构: ```html <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> </div> ``` ### 使用 jQuery 修改最后一个 `.item` 的 CSS: ```javascript $('.item:last').css('color', 'red'); // 或者等价写法: // $('.item').last().css('color', 'red'); ``` ### 代码解释: - `$('.item')`:选择所有拥有 `class="item"` 的 `div` 元素。 - `:last`:是 jQuery 的伪选择器,用于匹配选中集合中的**最后一个元素**。 - `.last()`:是 jQuery 对象的方法,功能与 `:last` 相同,返回匹配元素集合中的最后一个。 - `.css('color', 'red')`:设置该元素的文本颜色为红色。 > ⚠️ 注意:`:last` 和 JavaScript 原生的 `:last-child` 不一样! > - `:last` 是 jQuery 特有的,表示“在选中的这一批元素里取最后一个”。 > - `:last-child` 是 CSS 选择器,表示“父元素下的最后一个子元素”,要求该元素必须是其父元素的最后一个孩子。 ### 更安全的写法(推荐): ```javascript $('.item').last().css({ 'color': 'red', 'font-weight': 'bold', 'background-color': '#f0f0f0' }); ``` 这样可以链式设置多个样式,更清晰易读。 --- ### 相关问题说明: 如果页面内容是通过 JS 动态循环插入的(比如 Vue、React 风格的渲染,或者 jQuery `.append()` 循环添加),只要 DOM 已经生成完毕,上述方法依然有效。但要注意执行时机,确保 DOM 渲染完成后再运行该 jQuery 代码。 #### 示例:动态添加后操作 ```javascript // 动态添加几个 div for (let i = 0; i < 5; i++) { $('.container').append(`<div class="item">Dynamic Item ${i+1}</div>`); } // 等待 DOM 更新后,再修改最后一个 item 的样式 $('.item').last().css('color', 'blue'); ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值