Javascript 在带有chrome扩展的html页面中添加类

Javascript 在带有chrome扩展的html页面中添加类,javascript,facebook,google-chrome,Javascript,Facebook,Google Chrome,我尝试用chrome扩展为Facebook页面上的一个元素添加一个类。不幸的是我的脚本不工作。。。我的目标是在提要中选择包含广告的帖子。所有POST容器看起来都很相似,唯一的区别是“赞助”标签,它是主容器的高度子级 script.js: var x = document.getElementsByClassName("uiStreamSponsoredLink").parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.

我尝试用chrome扩展为Facebook页面上的一个元素添加一个类。不幸的是我的脚本不工作。。。我的目标是在提要中选择包含广告的帖子。所有POST容器看起来都很相似,唯一的区别是“赞助”标签,它是主容器的高度子级

script.js:

var x = document.getElementsByClassName("uiStreamSponsoredLink").parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
x.className += "otherclass";
舱单:

{
  "name": "Project",
  "version": "0.0.1",
  "manifest_version": 2,
  "default_locale": "en",
  "icons": {
    "16": "img/icon16.png",
    "48": "img/icon48.png",
    "128": "img/icon128.png"
  },
  "permissions": [
    "*://*.facebook.com/*"
  ],
  "content_scripts": [
    {
      "matches": [
        "*://*.facebook.com/*"
      ],
      "css": [
        "content_script/replace-reactions.css"
      ],
      "js": [
        "content_script/script.js"
      ]
    }
  ],
  "web_accessible_resources": [
    "img/*.png"
  ]
}
在script.js中添加以下内容:

比如说,

document.getElementsByTagName('body').attr('class','YOUR class NAME')


这里我为body标记设置了类名。您可以为页面中的任何元素设置此选项。

但我只希望指向Facebook提要中包含外接程序的元素。我想我必须找到这个元素并为此添加一个特定的类,不是吗?这是在问题被问到之后的一段时间,但是如果你按照答案所说的做,你将删除该元素上的其他类。最好使用classList。请参阅和。您应该首先检查浏览器控制台是否有错误<例如,code>document.getElementsByClassName(“uiStreamSponsoredLink”).parentNode是完全错误的,因为getElementsByClassName返回一个节点列表,所以您需要单独访问该列表中的项目。您的意思是执行foreach?问题是当你滚动时facebook会更新html