当前位置: 首页 > news >正文

jQuery ID与Class选择器对比

jQuery ID选择器与Class选择器比较

在jQuery中,ID选择器和Class选择器是两种最基本且常用的元素选择方式,它们有显著的区别:

核心区别

特性ID选择器Class选择器
语法$("#idName")$(".className")
唯一性每个ID在文档中必须唯一Class可以在多个元素上重复使用
返回元素单个元素(即使有重复ID也只会返回第一个)多个元素组成的集合
性能更快(浏览器原生支持getElementById)相对较慢(需要遍历所有元素)
CSS优先级高(权重100)低(权重10)
使用场景精确选择单个特定元素选择具有相同特征的一组元素

示例演示

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>jQuery ID vs Class选择器比较</title><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><style>body {font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;max-width: 900px;margin: 0 auto;padding: 20px;background-color: #f5f7fa;color: #333;line-height: 1.6;}.container {background-color: white;border-radius: 10px;box-shadow: 0 5px 15px rgba(0,0,0,0.1);padding: 30px;margin-bottom: 30px;}h1 {color: #2c3e50;text-align: center;margin-bottom: 30px;border-bottom: 2px solid #3498db;padding-bottom: 15px;}.comparison-table {width: 100%;border-collapse: collapse;margin-bottom: 30px;}.comparison-table th, .comparison-table td {padding: 15px;text-align: left;border: 1px solid #ddd;}.comparison-table th {background-color: #3498db;color: white;font-weight: bold;}.comparison-table tr:nth-child(even) {background-color: #f8f9fa;}.comparison-table td:first-child {font-weight: bold;color: #2c3e50;}.demo-section {display: flex;gap: 30px;margin-top: 30px;}.demo-panel {flex: 1;background-color: #eef5f9;padding: 20px;border-radius: 8px;}.demo-title {color: #3498db;margin-top: 0;text-align: center;}.item {padding: 12px;margin: 10px 0;border-radius: 5px;transition: all 0.3s;}.highlight {animation: highlight 1.5s ease;}@keyframes highlight {0% { background-color: transparent; }50% { background-color: #ffeaa7; }100% { background-color: transparent; }}.btn {display: block;width: 100%;padding: 12px;margin: 15px 0;background-color: #3498db;color: white;border: none;border-radius: 5px;cursor: pointer;font-size: 16px;transition: background-color 0.3s;}.btn:hover {background-color: #2980b9;}.result-box {background-color: #fff;border-left: 4px solid #3498db;padding: 15px;margin: 20px 0;border-radius: 0 5px 5px 0;}code {background-color: #f1f1f1;padding: 2px 6px;border-radius: 3px;font-family: Consolas, monospace;}footer {text-align: center;margin-top: 30px;color: #7f8c8d;font-size: 14px;}.selected {border: 2px solid #e74c3c !important;}</style>
</head>
<body><div class="container"><h1>jQuery ID选择器 vs Class选择器</h1><table class="comparison-table"><thead><tr><th>特性</th><th>ID选择器 (<code>$("#id")</code>)</th><th>Class选择器 (<code>$(".class")</code>)</th></tr></thead><tbody><tr><td>语法</td><td>使用 <code>#</code> 前缀</td><td>使用 <code>.</code> 前缀</td></tr><tr><td>唯一性</td><td>每个ID在文档中必须唯一</td><td>Class可在多个元素上重复使用</td></tr><tr><td>返回元素</td><td>单个元素(即使有重复ID也只会返回第一个)</td><td>多个元素组成的集合</td></tr><tr><td>性能</td><td>非常高效(浏览器原生支持)</td><td>相对较慢(需要遍历元素)</td></tr><tr><td>CSS优先级</td><td>高(权重100)</td><td>低(权重10)</td></tr><tr><td>使用场景</td><td>精确选择单个特定元素</td><td>选择具有相同特征的一组元素</td></tr></tbody></table><div class="demo-section"><div class="demo-panel"><h2 class="demo-title">ID选择器演示</h2><div id="uniqueItem" class="item">这是一个具有唯一ID的元素 (ID: uniqueItem)</div><button id="highlightIdBtn" class="btn">使用ID选择器高亮元素</button><button id="changeContentBtn" class="btn">使用ID选择器修改内容</button><div class="result-box"><h3>代码示例:</h3><p><code>$("#uniqueItem")</code> - 选择ID为uniqueItem的元素</p><p><code>$("#uniqueItem").css("background-color", "yellow")</code></p></div></div><div class="demo-panel"><h2 class="demo-title">Class选择器演示</h2><div class="groupItem item">元素1 (class: groupItem)</div><div class="groupItem item">元素2 (class: groupItem)</div><div class="groupItem item">元素3 (class: groupItem)</div><div class="differentItem item">不同类别的元素 (class: differentItem)</div><button id="highlightClassBtn" class="btn">使用Class选择器高亮元素</button><button id="countItemsBtn" class="btn">统计同类元素数量</button><div class="result-box"><h3>代码示例:</h3><p><code>$(".groupItem")</code> - 选择所有class为groupItem的元素</p><p><code>$(".groupItem").addClass("selected")</code></p></div></div></div></div><footer><p>jQuery选择器演示 | 理解ID选择器和Class选择器的区别</p></footer><script>$(document).ready(function() {// ID选择器演示$("#highlightIdBtn").click(function() {$("#uniqueItem").addClass("highlight").delay(1500).queue(function() {$(this).removeClass("highlight").dequeue();});});$("#changeContentBtn").click(function() {$("#uniqueItem").css("background-color", "#aed6f1").html("内容已被ID选择器修改!<br><small>(ID选择器精确地选择了这个元素)</small>");});// Class选择器演示$("#highlightClassBtn").click(function() {$(".groupItem").addClass("selected").delay(1500).queue(function() {$(this).removeClass("selected").dequeue();});});$("#countItemsBtn").click(function() {const count = $(".groupItem").length;$(".groupItem").each(function(index) {$(this).html(`元素${index+1} (共${count}个元素) <br><small>Class选择器选择了我们全部</small>`);});});});</script>
</body>
</html>

关键区别总结

  1. 唯一性要求

    • ID在文档中必须唯一(重复ID会导致jQuery只选择第一个匹配元素)
    • Class可在多个元素上重复使用
  2. 选择结果

    • ID选择器返回单个元素
    • Class选择器返回包含所有匹配元素的集合
  3. 性能差异

    • ID选择器通过原生document.getElementById()实现,效率极高
    • Class选择器需要遍历DOM元素,性能相对较低
  4. 实际应用

    • 使用ID选择器操作特定元素(如导航栏、搜索框)
    • 使用Class选择器操作一组元素(如表格行、卡片样式)

在实际开发中,应遵循HTML规范的ID唯一性原则,并根据需求合理选择使用ID选择器或Class选择器。

http://www.dtcms.com/a/298546.html

相关文章:

  • C++中的deque
  • js多边形算法:获取多边形中心点,且必定在多边形内部
  • Android系统中的4KB内存页简介
  • 【图像理解进阶】如何对图像中的小区域进行细粒度的语义分割?
  • DNS 服务正反向解析与 Web 集成实战:从配置到验证全流程
  • 37.安卓逆向2-frida hook技术-过firda检测(二)(过D-Bus检测和搭配maps检测进行使用)
  • 65.第二阶段x64游戏实战-替换游戏lua打印可接任务
  • OpenCV结合深度学习进行图像分类
  • 暑期自学嵌入式——Day08(C语言阶段)
  • 用单片机怎么控制转速
  • 嵌入式学习-(李宏毅)机器学习(3)-day30
  • 操作系统:操作系统的结构(Structures of Operating System)
  • AI面试与传统面试的核心差异解析——AI面试如何提升秋招效率?
  • RAG架构原理和LangChain方式实现RAG
  • 【正点原子K210连载】第二十一章 machine.UART类实验摘自【正点原子】DNK210使用指南-CanMV版指南
  • MyBatis-Plus 指南
  • 网络安全入门第一课:信息收集实战手册(3)
  • @ControllerAdvice相关知识点,和@Controller有什么区别
  • “八卦”简读
  • 手语式映射:Kinova Gen3 力控机械臂自适应控制的研究与应用
  • Python HTML模块详解:从基础到实战
  • 率先通过自动制冰性能认证,容声冰箱推动行业品质升级
  • TDengine 转化函数 TO_TIMESTAMP 用户手册
  • 原创-大型嵌入式软件架构设计指南:从理论到实践的完整方法论
  • WinUI3开发_过渡动画
  • 数据结构(3)单链表
  • 机器学习之knn算法保姆级教学
  • (三)Python基础入门-流程控制结构
  • 航段导航计算机 (Segment_Navigator) 设计与实现
  • 深入解析 ArkUI 触摸事件机制:从点击到滑动的开发全流程