javascript - 通过从 json 读取数据来更改路径类

标签 javascript jquery html

首先我要说的是我完全不适应;由于我们正在进行工作重组,我需要承担一些额外的职责 - 例如进行一些可视化。

所以我的问题如下:我有一个 svg map ,其中 200 多个路径中的每一个都有自己的 id。我还有一个具有多个属性的 json 文件。所以我想做的是,当你按下一个按钮时,每个路径都会获得一个基于 json 文件的类,其中 json id = 路径 id。然后路径会被 css 文件中的颜色填充。

[{
  "id": "a",
  "up": "users: 124"
  "class": "test"
},
{
  "id": "b",
  "up": "users: 4"
  "class": "test2"
}];

$('#button').on("click", function() {
$('.test').css({ fill: "#f6eff7" });
$('.test2').css({ fill: "#a6bddb" });

<path id="a" class="" d="..." />
<path id="b" class="" d="..." />
<button class="btn" id="button">2018</button>

最佳答案

您可以收听click在您的<button>上并使用 Array#forEach 添加类循环访问您的数据:

let data = [{
    "id": "a",
    "up": "users: 124",
    "class": "test"
  },
  {
    "id": "b",
    "up": "users: 4",
    "class": "test2"
  }
];

document.getElementById('button').addEventListener('click', function() {
  data.forEach(current => {
    document.querySelector('path#' + current.id).classList.add(current.class);
  });
});
.test {
  fill: red;
}

.test2 {
  fill: blue;
}
<svg>
<path id="a" class="" d="M150 0 L75 200 L225 200 Z" />
<path id="b" class="" d="M100 0 L75 100 L125 100 Z" />
</svg>
<button class="btn" id="button">Add classes</button>

关于javascript - 通过从 json 读取数据来更改路径类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219241/

相关文章:

javascript - 在 d3.js 更新上比较/区分新数据与以前的数据

javascript - switch 语句不起作用可能是误解

javascript - 如果两个选项相同,则在第二次选择时转到下一个选项

Javascript/PHP - 将数据传递到模态(弹出窗口)

javascript - 它不允许我使用 css 设计我的 <div>

javascript - 通过具有请求速率限制器的 API 进行异步请求

javascript - 为什么这段 JavaScript 代码(RequireJS 和 Node.js 的模块模式)有效?

javascript - 从先前的选择框值填充选择框选项

使用 colSpans 的 HTML 表格未按预期显示

javascript - 如何在奇特的AJAX中显示自刷新的 "popout"html GET页面