本文讲解如何通过
jquery
安全、准确地读取按钮的 `data-accent-
switch
er` 属性值,并将其写入
浏览器
cookie
,解决因属性命名不规范和方法误用(如混用 `.val()` 与 `.attr()`)导致的值获取错误问题。
在
前端
开发中,常需通过按钮点击动态切换主题、配色等用户偏好设置,并持久化保存至 Cookie。但若自定义属性命名或 jQuery API 使用不当,极易引发值读取异常(例如返回 undefined、[object Object] 或意外覆盖)。原代码存在两个关键问题:
属性命名不符合 HTML5 规范
:accent-switcher 是非法的自定义属性名(含连字符且未加 data- 前缀),jQuery 的 .data() 方法无法自动识别;应改为 data-accent-switcher;
API 混用错误
:$(this).val($(this).attr("accent-switcher")) 试图将 attr() 返回值作为参数传给 val() —— 这实际是在
设置
元素的 value 值,而非
获取
属性值,且