d3.select 不适用于特殊字符

2024-05-01

我正在使用 d3.js 处理简单的图表。假设下面的 div 是我计划放置 d3 的 svg 容器的地方

<div id="my~div_chart">

但是当我使用

d3.select('#my~div_chart')

我无法选择特定的 div,但是通过使用 java 脚本选择器,它可以工作。

document.getElementById("my~div_chart");

谁能告诉我为什么会发生这种情况。如果是特殊字符问题,请告诉我支持哪些特殊字符。


它就在那里,在规格 https://www.w3.org/TR/CSS21/syndata.html#characters:

在 CSS 中,标识符(包括元素名称、类和选择器中的 ID)可以包含only字符 [a-zA-Z0-9] 和 ISO 10646 字符 U+00A0 及更高版本,加上连字符 (-) 和下划线 (_);它们不能以数字、两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何 ISO 10646 字符作为数字代码(请参阅下一项)。例如,标识符“B&W?”可以写成“B\&W\?”或“B\26 W\3F”。 (强调我的)

除此之外,~是一个兄弟组合器:

一般同级组合器由分隔两个简单选择器序列的“波形符”(U+007E,~)字符组成。两个序列表示的元素在文档树中共享相同的父元素,并且第一个序列表示的元素在第二个序列表示的元素之前(不一定紧邻)。

因此,如果您仍然想使用该 ID,则必须转义波浪号,使用"#my\\~div_chart":

d3.select("#my\\~div_chart").on("click", function(){
    d3.select(this).style("background-color","teal")
});
<script src="https://d3js.org/d3.v4.min.js"></script>
<div id="my~div_chart">Click Me</div>

最后,在你的问题中,你说document.getElementById工作了。但是,请记住document.querySelector会失败的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

d3.select 不适用于特殊字符 的相关文章

随机推荐

  • 使用并发.futures.ProcessPoolExecutor 动态创建函数的限制

    我正在尝试使用我在其他函数中动态创建的函数进行一些多重处理 如果提供给 ProcessPoolExecutor 的函数是模块级的 我似乎可以运行这些 def make func a def dynamic func i return i i
  • 仅在一个 JTable 单元格中的复选框

    我想创建一个JTable有 2 列 看起来像一个调查 所以左边是问题 右边是用户可以给出他的答案 但在一行的右侧应该有一个复选框 以便用户只能回答是或否 这可以用JTable 我怎样才能做到这一点 regards 您在评论中指出 我用一列
  • 如何从 CloudFormation 中的 Elastic Beanstalk 环境中提取负载均衡器名称

    我使用以下代码片段在 CloudFormation 中创建了 Elastic Beanstalk 和 CloudWatch 警报 ElasticBeanstalkEnvironment Type AWS ElasticBeanstalk E
  • 使用 Mapstruct 将对象列表转换为长 ID 列表

    我在用MapStruct将实体转换为 DTO 我有一个实体 A 和实体 B 的列表 public class A List b bs 我想要 ADto 类中的 B id 列表 public class ADto List b
  • 如何禁用将包上传到 PyPi 除非将 --public 传递给上传命令

    我正在开发包并将包的开发 测试 等版本上传到本地 devpi 服务器 为了防止意外上传到PyPi 我采用了以下常见做法 setup classifiers Programming Language Python Programming La
  • 是否可以在选择器中进行修剪?

    我想计算表单中所有为空的输入 对于空 我的意思是它的值在修剪其值后为空 如果用户插入空格也为空 这个 jquery 对它们进行计数 但不包括修剪 text filter value length 有一些 jquery 可以用来在选择器中修剪
  • 如何继续使用适用于 AWS Cognito 的 AD FS SAML?

    我正在设置 AD FS 来生成 SAML 元数据以连接到 AWS Cognito 用户池 我已经生成了 xml 元数据并将其上传到用户池 我应该在 AD FS 站点上创建信任中继吗 是否还有其他步骤可以让我的 AD 用户可用于 Web 应用
  • 如何集成Django和Cygwin?

    我有一个安装了 cygwin python 和 django 的 Windows 盒子 现在我想运行 django admin 但是当我这样做时 我收到错误 django admin py c Python26 python exe can
  • 无法获得 S.M.A.R.T.外部驱动器的信息

    我正在尝试获取外部 USB 驱动器的 SMART 信息 我使用以下查询来获取驱动器的温度 但是该查询始终返回集合中的单个对象 即我的内部 HDD ManagementObjectSearcher searcher new Managemen
  • 使用 python 中 pandas 的 read_excel 函数将日期保留为字符串

    Python 2 7 10 尝试过 pandas 0 17 1 函数 read excel 尝试过 pyexcel 0 1 7 pyexcel xlsx 0 0 7 函数 get records 在Python中使用pandas时可以读取e
  • 基于范围的 for 带大括号初始化器而不是非常量值?

    我正在尝试迭代一些std lists 对它们中的每一个进行排序 这是天真的方法 include
  • Box2d 自定义多边形和精灵不匹配

    我正在使用物理编辑器在 Box2d 中创建多边形 它生成多边形并在非视网膜显示器中工作正常 但在视网膜显示器中不起作用 我已附上两个显示器的屏幕截图 现在 当谈到视网膜显示器时 未设置多边形在汽车上方 这是该图像 这是我在项目中使用的代码
  • 如何使用包含点/句点的 MVC5 基于属性的路由?

    我基本上有一个开箱即用的 MVC 5 2 应用程序 启用了基于属性的路由 调用routes MapMvcAttributeRoutes 从提供的RouteConfig RegisterRoutes RouteCollection route
  • 在应用程序中搜索对象的设计模式

    需要一些有关设计模式的帮助 我正在创建一个应用程序 该应用程序在存储在单独表中的数据库中的对象上具有不同类型 例如 我有 5 种对象 A B C D E 我在数据库中有 5 个不同的表来存储每个对象 现在 我想在我的应用程序中实现搜索功能
  • 如何使用 INSTEAD OF 触发器获取插入表中的新记录的标识

    我在表上使用 INSTEAD OF 插入触发器来设置该行上递增的版本号 并将该行复制到第二个历史记录 审核表 这些行插入到两个表中都没有问题 但是 我无法将第一个表中的新身份返回给用户 Schema CREATE TABLE Table1
  • “pow”的使用含糊不清

    大家好 我尝试过 当有人给出一秒钟时 我会得到十亿秒的实时数据 所以我就写了这样的代码 我必须将第二次乘以 10 9 但出现错误 pow 的使用含糊不清 func gigaSecond second Int gt Int var gigas
  • 在 Swift 中获取 UIPickerView 控件的选定值

    如何在 Swift 中获取 UIPickerView 控件的选定值 我尝试过这样的事情 labelTest text Spinner1 selectedRowInComponent 0 description 但这仅返回选定的索引 我需要这
  • 二维向量的迭代器

    如何为 2d 向量 向量的向量 创建迭代器 虽然你的问题是not非常清楚 我假设您的意思是 2D 向量表示向量的向量 vector lt vector
  • 哪种编写回调的方法更好?

    只要看看我现在写的东西 我就可以看到一个小得多 所以就代码高尔夫 http en wikipedia org wiki Code golf Option 2是更好的选择 但就哪个更干净而言 我更喜欢Option 1 我真的很喜欢社区对此的意
  • d3.select 不适用于特殊字符

    我正在使用 d3 js 处理简单的图表 假设下面的 div 是我计划放置 d3 的 svg 容器的地方 div 但是当我使用 d3 select my div chart 我无法选择特定的 div 但是通过使用 java 脚本选择器 它可以