修改Tampermonkey脚本:为含指定文本的父div设置背景色
解决方案
问题根源
你的代码存在两个关键错误:
- 样式属性调用错误:DOM元素的背景色必须通过
style.backgroundColor设置(驼峰命名规则,且需通过style对象访问),你写的backgroundcolor()是错误写法。 - 元素定位不精准:
closest("div")会匹配最近的任意div,未必是你要找的class为shop-item的目标容器,应该直接指定class选择器。
修正后的代码
假设node是包含"Item Name"的文本节点或其子元素,替换问题代码为:
const targetShopItem = node.closest(".shop-item"); if (targetShopItem) { // 正确设置背景色 targetShopItem.style.backgroundColor = "#1AFF00FF"; }
额外说明
closest(".shop-item")会从node开始向上查找,返回最近的带有shop-item类的元素(包括node自身如果符合条件的情况),确保精准定位目标div。- 增加
if (targetShopItem)判断是为了避免找不到元素时触发报错,让脚本更健壮。
内容的提问来源于stack exchange,提问作者Sity
相关产品推荐
相关产品推荐

