css Javascript -更改包含特定文本的Div的背景色

plupiseo  于 2023-03-20  发布在  Java
关注(0)|答案(1)|浏览(138)

这是我潜伏多年后的第一篇文章,所以如果这篇文章的格式不正确,请原谅我。我目前正在修改一个Tampermonkey脚本(Firefox),用于在网页中搜索一组特定的文本字符串(我已经在脚本中预定义了),并在加载后突出显示页面上的文本。不过,脚本的这一部分工作得很好,现在我正在尝试更改其中一个父对象的背景颜色。
我想更改包含文本“Item Name”的整个元素(div类“shop-item”)的背景颜色:

<div class="shop-item">
  <div class="item-img" tabindex="0" style="background-image:url("URL_HERE");" border='1'>
  </div>
  <p class='item-name'>
    <b>Item Name</b>
  </p>
</div>

整个脚本运行得非常完美,但是现在我试图高亮显示文本字符串以外的其他项目,我遇到了一些问题,这就是我遇到问题的脚本部分:

var textnodes = document.evaluate("//body//text()", document, null,
        XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

    for (var i = 0; i < textnodes.snapshotLength; i++) {
    var node = textnodes.snapshotItem(i);

        if (!(node.data.match(/^\s*$/))) {
        var s = " " + node.data + " ";
        changes = 0;
        var d = highlight(quoteHTML(s));
        if (changes > 0) {
            var rep = document.createElement("span");
            rep.innerHTML = d.substring(1, d.length - 1);
            node.parentNode.replaceChild(rep, node);
            node.closest("div").backgroundcolor("#1AFF00FF");
        }
        }
    }
    }

问题出在最后一行代码上:node.closest("div").backgroundcolor("#1AFF00FF");
我试过很多其他的组合,包括.parentNode,但是都不成功。我对Javascript/Tampermonkey脚本还是个新手,所以任何帮助都将非常感谢!

w1e3prcc

w1e3prcc1#

您需要将其更改为:

node.closest("div").style.backgroundColor = "#1AFF00FF";

参考:Style backgroundColor Property

相关问题