javascript - 切换到测试 id 并根据类执行操作
问题描述
我在页面上有许多元素,它们的背景颜色可能是粉红色、黄色或蓝色。这些元素都带有各自的类,例如蓝色:
<a href="http://somesite.com/person/Arnald_Garnier_MSP-AU" class="change_link_colour doc-person-blue">Arnaldus Garnieri</a>
我有三个按钮来删除这些各自的背景颜色,
<span id="clear-doc-person-blue" class="fake_link" onclick="clearentitycolour(this.id)">clear all</span>
<span id="clear-doc-place-pink" class="fake_link" onclick="clearentitycolour(this.id)">clear all</span>
<span id="clear-doc-segment-yellow" class="fake_link" onclick="clearentitycolour(this.id)">clear all</span>
按钮调用相同的函数,该函数应该读取元素 id 名称并确定选择哪个类来更新所有style.backgroundColor = "none"
function clearentitycolour(clicked_id)
{
switch(clicked_id) {
case "clear-doc-person-blue":
var x = document.getElementsByClassName("doc-person-blue");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "none";}
break;
case "clear-doc-place-pink":
var x = document.getElementsByClassName("doc-place-pink");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "none";}
break;
case "clear-doc-segment-yellow":
var x = document.getElementsByClassName("doc-segment-yellow");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "none";}
break;
}}
它什么也没做,我不明白为什么。
提前谢谢了。
解决方案
您的代码运行良好;只有一个错误——而不是background-color: 'none'
你必须使用background-color: 'transparent'
.
function clearentitycolour(clicked_id)
{
console.log(clicked_id)
switch(clicked_id) {
case "clear-doc-person-blue":
var x = document.getElementsByClassName("doc-person-blue");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "transparent";}
break;
case "clear-doc-place-pink":
var x = document.getElementsByClassName("doc-place-pink");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "transparent";}
break;
case "clear-doc-segment-yellow":
var x = document.getElementsByClassName("doc-segment-yellow");
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "transparent";}
break;
}}
.doc-person-blue {
background-color: lightblue;
}
<span id="clear-doc-person-blue" class="fake_link" onclick="clearentitycolour(this.id)">clear blue</span>
<a href="http://somesite.com/person/Arnald_Garnier_MSP-AU" class="change_link_colour doc-person-blue">Arnaldus Garnieri</a>
推荐阅读
- hyperledger-fabric - 如何确保一个链码被另一个链码调用
- spring - 当 Spring 上下文初始化失败时如何中断集成测试?
- react-native - 如何延迟 Redux Persist Gate 的 SplashScreen?
- javascript - 在 Firefox 中使用 AJAX 动态加载数据列表选项
- python - 在 MatPlotLib 中绘制退化的余弦函数
- c# - 删除后序列化模型
- firebase - 反应本机堆栈跟踪
- docker - 哪些 API 对象支持配额,Kubernetes kubectl
- sql - SQL Server 外部应用查询优化
- azure - 来自在 ARM 模板中创建的对象的机密是否可以自动添加到 Key Vault