我目前正在制作Chrome扩展程序,所以我一直在练习它。我一直试图过滤https://stackoverflow.com/上的问题。首先,我想保持简单并简单地隐藏所有问题,然后一旦我开始工作,我想只过滤负分数的帖子。
我的问题是,简单隐藏所有问题的简单版本甚至无法正常工作。我不知道我做错了什么:
问题示例:
我的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
我收到以下错误:
答案 0 :(得分:1)
salary
返回元素的HTMLCollection,这是一个类似于数组的对象,包含具有指定类的所有元素。请参阅MDN reference。你正在使用这个方法,就像它返回一个结果 - 隐藏所有匹配的元素,你需要迭代结果:
getElementsByClassName
另请注意,要使其工作,样式必须在开头的元素上内联,而不是在CSS中。否则,您将不得不检查更昂贵的计算样式。现在包含。