You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tampermonkey JS为类名m-date-entry__day-field设置attribute失败问题求助

执行失败的原因
  • 方法名拼写错误:正确的DOM API是document.getElementsByClassName(),Element后需加复数后缀s,你使用的getElementByClassName是不存在的方法,调用会直接抛出异常。
  • 返回值类型不匹配:getElementsByClassName返回的是类数组结构的HTMLCollection集合(因为同一个类名可以绑定到多个元素上),并非单个DOM元素,直接对集合调用setAttribute方法会报错,必须先选中集合内的目标元素再操作。
解决方法

方法1:修正原有写法

如果页面内只有1个类名为m-date-entry__day-field的元素,补全方法名并指定集合的第一个元素索引即可:

// 方式1:通过setAttribute设置value属性
document.getElementsByClassName("m-date-entry__day-field")[0].setAttribute("value", "1");
// 方式2:直接修改input的value属性(更推荐,实时生效,不受用户交互影响)
document.getElementsByClassName("m-date-entry__day-field")[0].value = "1";

如果页面有多个同类名元素,调整索引[0]为你需要的目标元素对应序号即可。

方法2:使用querySelector简化操作

querySelector会直接返回匹配选择器的第一个元素,不需要手动处理集合,写法更简洁:

// 同样两种赋值方式二选一
document.querySelector(".m-date-entry__day-field").setAttribute("value", "1");
document.querySelector(".m-date-entry__day-field").value = "1";

内容的提问来源于stack exchange,提问作者danieildefos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:54:05