今日实操案例:实现「点击按钮变粉色,其余按钮恢复默认」效果,拆解代码里的每一个jQuery知识点,新手也能看懂,建议收藏慢慢看~
先上完整可直接复制的代码(重点代码已高亮),先动手跑一遍,再看拆解更有感觉
<body><button>快速</button><button>快速</button><button>快速</button><button>快速</button><button>快速</button><button>快速</button><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script><script>// 1. jQuery入口函数(等待DOM加载完成再执行代码) $(function() {// 2. 给所有按钮绑定点击事件(隐式迭代特性) $('button').click(function(){// 3. 给当前点击的按钮设置粉色字体 $(this).css('color', 'pink')// 4. 给当前按钮的所有兄弟按钮,清除字体颜色 $(this).siblings('button').css('color', '')// 可选:链式编程(合并步骤3和4,更简洁)// $(this).css('color', 'pink').siblings('button').css('color', '') }) })</script></body>
一、核心知识点拆解(必记!)
这段代码看着短,但包含了jQuery最基础、最常用的4个核心方法+1个特性,逐个拆解,不绕弯子~
1. 入口函数:$(function() { ... })
✅ 作用:等待页面的DOM结构(所有标签,比如button)加载完成后,再执行里面的代码。
💡 小提示(避坑重点):
如果不写入口函数,代码可能会比DOM加载快,导致绑定事件、操作元素失败(新手最容易踩的坑);
等价写法:$(document).ready(function() { ... }),但上面的简写更常用,记简写就够了。
2. 元素获取:$('button')
✅ 作用:获取页面中所有的标签,返回一个jQuery对象(可以理解为“所有按钮的集合”)。
💡 小提示:
$()是jQuery的核心函数,括号里写“选择器”,就能获取对应元素(这里用的是标签选择器);
和原生JS的document.querySelectorAll('button')功能类似,但jQuery写法更简洁,后续操作更方便。
3. 事件绑定:click(function() { ... })
✅ 作用:给获取到的所有按钮,绑定“点击事件”——当用户点击任意一个按钮时,执行函数里的代码。
💡 小提示(隐式迭代特性):
这里不用循环!jQuery会自动遍历$('button')获取到的所有按钮,给每一个按钮都绑定点击事件,这就是jQuery的「隐式迭代」,帮我们省了很多代码(原生JS需要用for循环遍历所有按钮)。
4. 当前元素:$(this)
✅ 作用:在事件函数内部,$(this)代表「当前触发事件的元素」——也就是用户刚刚点击的那个按钮。
💡 小提示(重点区分):
$(this):只有当前点击的那一个按钮(精准定位,不影响其他按钮)。
5. 样式操作:css('属性', '值')
✅ 作用:设置或获取元素的CSS样式,这里用来修改按钮的字体颜色。
两种用法(都要记):
设置样式:$(this).css('color', 'pink') → 给当前按钮设置字体颜色为粉色;
清除样式:$(this).siblings('button').css('color', '') → 把字体颜色设为空,恢复默认样式。
6. 遍历方法:siblings('button')
✅ 作用:获取「当前元素的所有兄弟元素」,这里就是“当前点击按钮的所有其他按钮”。
💡 小提示:
siblings()可以不写参数(比如$(this).siblings()),表示获取所有兄弟元素;
写参数(比如siblings('button')),表示在兄弟元素中,筛选出button标签(这里其实可以省略,因为所有兄弟都是button,但写上去更规范)。
二、实操步骤(新手跟着走,不踩坑)
1. 先引入jQuery文件(必须第一步!):复制代码里的<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>,放在自己的script标签前面;
2. 写入口函数$(function() { ... }),把所有jQuery代码都放进去;
3. 用$('button')获取所有按钮,绑定click点击事件;
4. 事件内部,用$(this).css()给当前按钮设粉色;
5. 用$(this).siblings().css()给其他按钮清样式;
6. 保存文件,用浏览器打开,点击按钮测试效果。
三、进阶技巧:链式编程
代码里注释的那句,就是jQuery的「链式编程」,把两个css操作连在一起写,更简洁,不用重复写$(this):
$(this).css('color', 'pink').siblings('button').css('color', '')
✅ 原理:jQuery方法执行后,会返回当前的jQuery对象,所以可以一直“点”下去,继续调用其他方法。
💡 小提示:链式编程不要写太长(比如超过3个方法),否则会影响可读性,适当换行即可。
四、新手避坑注意事项(重中之重)
❌ 忘记引入jQuery文件:会报错“$ is not defined”,一定要先引入,再写自己的jQuery代码;
❌ 不用入口函数:可能导致按钮绑定事件失败,看不到效果;
❌ 把('button'):点击任意一个按钮,所有按钮都会变粉色,达不到“只变当前按钮”的效果;
❌ 清除样式时,把css('color', '')写成css('color', 'black'):如果页面默认字体不是黑色,会导致样式不一致,写空字符串最安全;
✅ 推荐做法:先跑通完整代码,再逐行注释,测试每一步的效果(比如注释掉siblings那行,看看点击按钮会不会所有按钮都变粉),加深理解。
五、总结(一句话记重点)
用「入口函数」等待DOM加载,用$('button')获取所有按钮,用click()绑定点击事件,用$(this)定位当前按钮,用css()修改样式,用siblings()操作兄弟元素,还能通过链式编程简化代码——这就是jQuery的简洁高效之处!
下一篇笔记,继续拆解jQuery的其他实操案例,新手跟着练,慢慢就能上手