使用JavaScript / Chrome扩展程序过滤HTML元素

时间:2018-01-08 15:40:22

标签: javascript html google-chrome

我目前正在制作Chrome扩展程序,所以我一直在练习它。我一直试图过滤https://stackoverflow.com/上的问题。首先,我想保持简单并简单地隐藏所有问题,然后一旦我开始工作,我想只过滤负分数的帖子。

我的问题是,简单隐藏所有问题的简单版本甚至无法正常工作。我不知道我做错了什么:

问题示例:

enter image description here

我的public TurretBlueprint Archery; public TurretBlueprint Treb; public TurretBlueprint Workamp; public TurretBlueprint Barracks; public Button Archeryy; public Button Trebb; public Button WorkCampp; public Button Barrackss; BuildManager buildManager; void Start() { buildManager = BuildManager.instance; disableAllButtons(); //Enable(); } public void SelectArchery() { buildManager.SelectTurretToBuild(Archery); Debug.Log("archery!!!!"); } public void SelectTreb() { buildManager.SelectTurretToBuild(Treb); Debug.Log("Treb!!!!"); } public void SelectWorkamp() { buildManager.SelectTurretToBuild(Workamp); Debug.Log("Work Camp!!!!"); } public void SelectBarracks() { buildManager.SelectTurretToBuild(Barracks); Debug.Log("Barracks!!!!"); } public void Enable() { Archeryy.gameObject.SetActive(true); Trebb.gameObject.SetActive(true); WorkCampp.gameObject.SetActive(true); Barrackss.gameObject.SetActive(true); } public void disableAllButtons() { Archeryy.gameObject.SetActive(false); Trebb.gameObject.SetActive(false); WorkCampp.gameObject.SetActive(false); Barrackss.gameObject.SetActive(false); }}

manifest.json

我的{ "manifest_version": 2, "name": "Example", "description": "This extension allows filter StackOverflow questions.", "version": "1.0", "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "permissions": [ "activeTab" ] }

popup.html

和我的<html> <head> <title>SO Filter</title> <script src="popup.js"></script> </head> <body> <h1>SO Filter</h1> <button onclick="filter();">Filter!</button> </body> </html>

popup.js

我收到以下错误:

enter image description here

1 个答案:

答案 0 :(得分:1)

salary返回元素的HTMLCollection,这是一个类似于数组的对象,包含具有指定类的所有元素。请参阅MDN reference。你正在使用这个方法,就像它返回一个结果 - 隐藏所有匹配的元素,你需要迭代结果:

getElementsByClassName

另请注意,要使其工作,样式必须在开头的元素上内联,而不是在CSS中。否则,您将不得不检查更昂贵的计算样式。现在包含。