首页 > 解决方案 > 字符串与预期的模式不匹配 d3 选择

问题描述

我正在使用 d3 v5 进行数据可视化,我创建了一个强制布局,每个节点都有自己的名称作为 id。这部分是动态完成的。HTML 部分工作正常,userInput.value将返回一个带有“/”的 id(在这种情况下,节点的 ID 是“foo/A”)。但是,D3.SELECT函数在选择具有正向斜线的ID值时会失败。有没有办法绕过这个错误而不重命名所有节点?

var userInput = document.getElementById("targetNode");
  var theNode = d3.select("#" + userInput.value);

标签: javascripthtmlcssd3.js

解决方案


您将不得不逃避/with \\。所以做这样的事情不应该返回错误:

var userInput = document.getElementById("targetNode");
var temp = userInput.value;
var temp2 = temp.replace('/','\\/')
var theNode = d3.select("#" + temp2);

推荐阅读