javascript - 切换到测试 id 并根据类执行操作

标签 javascript

我的页面上有许多元素,它们的背景颜色可能是粉色、黄色或蓝色。这些元素都带有各自的类,例如蓝色:

<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: 'transparent' 而不是 background-color: 'none'

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>

关于javascript - 切换到测试 id 并根据类执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53770292/

相关文章:

javascript - 一种在浏览器中启用或禁用媒体查询的方法也适用于 Safari

javascript - jQuery Flot - 四舍五入 x 轴值?

javascript - 在 ASP.NET 中动态更改单选按钮选择上的表格单元格

javascript - Jquery添加事件

php - 如何从一个 HTML 输入设置另一个输入

javascript - 使用 Karma,如何排除与某个模式匹配的所有文件(特定子文件夹中的文件除外)?

javascript - 通过 3 个 json 文件创建嵌套菜单

javascript - ReactJS - SVG - 交互式时间线

javascript - AdMob 未在 ionic 设备上显示

Javascript 表单验证/清理我在这里需要正则表达式吗?