D3 在将 .data() 设置为附加元素时抛出“无法读取 null 的属性‘ownerDocument’”

2024-03-24

我收到此错误:

未捕获的类型错误:无法读取 null 的属性“ownerDocument”

这是来自设置的行.data()到最近附加的元素d3:

const someSet = someSelection.filter('.some:(filter)')

someSet.each((d, i, nodes) => {
  const someElement = d3.select(nodes[i])
  const someChild = someElement.append('g')

  someChild.data(this.data) // <-- This line throws the error
   .enter()
   .append('circle')
   .classed('some-class', true)
})

环顾四周我能找到的是有消息来源称,当相关元素尚未添加到页面时,他们遇到了此错误 https://github.com/metricsgraphics/metrics-graphics/issues/690,但我已确认在引发此错误时我的元素已添加到页面中。


事实证明,在将 .data() 添加到嵌套元素之前,我忘记添加新的空选择:

const someSet = someSelection.filter('.some:(filter)')

someSet.each((d, i, nodes) => {
  const someElement = d3.select(nodes[i])
  const someChild = someElement.append('g')

  someChild.selectAll('circle.some-class') // added empty selection here
   .data(this.data)
   .enter()
   .append('circle')
   .classed('some-class', true)
})

如果我执行创建组、存储对组的引用、附加数据和附加等操作,然后尝试将新数据附加到参考组(<g>)而不是小组内容的选择)。例如这将导致此错误:

const someObj = {} // or some class etc
const someSet = someSelection.filter('.some:(filter)')

someSet.each((d, i, nodes) => {
  const someElement = d3.select(nodes[i])
  const someChild = someElement.append('g')
  someObj.someChild = someChild

  someChild.selectAll('circle.some-class') // added empty selection here
   .data(this.data)
   .enter()
   .append('circle')
   .classed('some-class', true)
})

// ...do stuff
someObj.someChild.data(newData)
// Error because someObj.someChild is a D3 element, not a D3 selection

所以,最后应该是:

someObj.someChild.selectAll('circle.some-class').data(newData)

...或者存储的引用应该是选择数据被添加到。

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

D3 在将 .data() 设置为附加元素时抛出“无法读取 null 的属性‘ownerDocument’” 的相关文章

  • D3 圆形包布局鼠标悬停事件被多次触发

    我使用 D3 有这个圆形包布局 我已分配mouseover and mouseout屏幕截图中的圆圈上有事件 但我无法弄清楚为什么mouseover内圈事件被多次触发 例如 A1 B1 等 const data name root chil
  • 带水平滚动的 C3 / D3 条形图

    我正在创建一个 c3 条形图 其中每个条形代表在给定的一周内加入某个计划的人数 数据只是一个对象数组 其中包含 week of people week of people 等 理想情况下 我希望图表中显示最近 6 周的数据 但我希望能够水平
  • D3 V6 - 缩放和拖动功能

    在 Angular 7 中使用 D3 v6 创建世界地图 Choropleth 从 Angular 精简为纯 JavaScript 从 NaturalEarth 收集并在 mapshaper 中编译的形状文件以创建 GeoJSON 只对国家
  • 如何在 d3 力定向图中突出显示(更改颜色)所有连接(邻居)节点和链接

    我在这里看到了这个例子http www d3noob org 2013 03 d3js force directed graph example basic html http www d3noob org 2013 03 d3js for
  • 从简单的 JSON 字符串加载 D3.js 数据

    图库中的大多数示例都会从 TSV 文件加载数据 如何将以下内容转换为使用本地 json 变量而不是 TSV 数据 d3 tsv data tsv function error data var myEntitiesJson getEntit
  • 在 D3.js 中绘制多条线

    到目前为止 我一直在使用循环将线条元素添加到 D3 可视化中 但这似乎不符合 API 的精神 假设我有一些数据 var data time 1 value 2 value2 5 value3 3 value4 2 time 2 value
  • 使用 D3.js SVG 进行 2D 多边形布尔运算

    我有 2 个使用 D3 js 创建的简单面积图 数据和代码如下 让我们称它们为Graph A Graph B 我想用它们根据它们的相交方式创建 3 个新路径 多边形 Path 1 Graph A Graph B Path 2 Graph B
  • D3可折叠树不同节点颜色

    我在 d3 js 中有一个可折叠的树 我的目标是通过 类型 属性为节点着色 例如 类型 str 的节点应填充为红色 而类型 elem 的节点应填充为绿色 我就是无法让它发挥作用 有人能帮助我吗 这是我的代码
  • 如何访问 nvd3 中 d3 图的 x 和 y 比例?

    我正在使用 nvd3 绘制一些系列 并想向图中添加一些任意矩形 如何访问 d3 图的底层 x 和 y 比例 以便将矩形坐标转换为 svg 像素坐标 以便与现有数据的比例相同 function d3 render response nv ad
  • d3.js:如何在圆环图中的标签下方添加值

    我是 d3 js 的新手 到目前为止我所取得的成就是 this https jsfiddle net saras arya ypdw96v9 使用教程和视频 Now I am trying to add the dataset value
  • 使用canvg将C3.js SVG可视化到Canvas - 折线图填充黑色矩形,“错误:元素'parsererror'尚未实现”

    我正在尝试使用 Canvg 将 SVG 转换为 Canvas 这里是jsfiddle http jsfiddle net sridev24 vcz468f9 我收到一条错误消息 错误 元素 parsererror 尚未实现 我可以理解 ca
  • 调整小倍数迷你图

    我有一个热图 显示一些数据和热图每行的迷你图 如果用户单击行标签 则数据按降序排列 因此每个矩形都会放置在正确的位置 反之亦然 如果用户单击列标签 每个反应都以正确的方式放置 但我无法放置迷你图 这是代码 http plnkr co edi
  • d3 转换改变了哪些属性?

    我试图了解 d3 中到底发生了什么转换 例如 var bars svg selectAll null data my values enter append rect statement before transition attr x 1
  • 当节点扩展时增加d3中的连接链路长度

    我正在 d3 中研究可折叠力布局 我面临的问题是 当单击节点时 我需要增加节点之间链接的长度 以保持子节点之间的链接距离相同 当分析扩展时 如何增加分析和耀斑之间的距离 保持与子级的距离较小 是的 您可以通过定义一个函数来做到这一点力 链接
  • d3.forcesimulation() 链接距离

    我在堆栈上查看了不同的链接距离 似乎为了改变链接距离 您需要实现一个函数 然后传递它来动态分配链接距离 如下所示 function linkDistance d return d distance 然后我认为我可以传递给 svg 但返回函数
  • 如何在D3中导入json数据?

    如何在D3中导入json文件 I did d3 json temp json 但是我如何在进一步的代码中访问这个数据集呢 到目前为止我已经尝试过 var data d3 json temp json 但使用 data data 在其余代码中
  • d3.js V4 按钮缩放实现表现得很奇怪

    我正在尝试实现 d3 平移和缩放功能 默认的平移和缩放工作正常 但要求是我们还需要放大和缩小按钮 我还实现了缩放按钮 它也有效 奇怪的是 当我第一次移动图像并单击缩放按钮时 图像会移回到以前的位置 不仅是当我第一次用鼠标缩放并使用按钮再次开
  • D3js 多折线图 mouseOver

    我正在努力适应this http bl ocks org mbostock 3902569D3js 折线图示例 将鼠标悬停在我的多线图表上的使用情况 看起来d3 mouse this 0 on the mousemove函数生成以下错误 无
  • d3.js:非线性图轴

    我正在尝试在轴上添加自定义比例 如下所示 这个想法是 一个刻度总是比前一个刻度大 2 倍 我的理解是 这是一个定制秤 我做了一些研究 但找不到类似的东西 所以我想我的问题实际上是两个问题 这个尺度是数学世界的 标准 吗 这是否可以使用来实现
  • 暂停和恢复过渡

    我在用setInterval 因此转换会在一定时间间隔后发生 是否可以使用 setInterval 暂停和恢复工作 任何正确方向的建议 指示都会非常有帮助 这个问题是在 D3 v3 是最新版本时发布的 5年后D3 v5有了一些新方法 比如s

随机推荐

  • 在头文件中使用声明

    我一直在寻找有关使用的一些说明使用声明在头文件中 我正在四处搜索 但无法完全得到我正在寻找的答案 到目前为止我的研究得出的结论是 将它们用于非全局的范围是好的 而命名空间指令则不好 我明白 至少我希望如此 所以在我的例子中我使用shared
  • 如何获取到 CGPath 的距离以进行命中测试?

    我有一个打开的 CGPath UIBezierPath 我想检测用户是否触摸它 即某个点是否在距路径一定距离内 路径是开放的 即直线 曲线 而不是形状 它可以包含直线和曲线元素 如何获得到路径的距离来进行命中测试 CGPath UIBezi
  • 如何等待matplotlib动画结束?

    考虑直接取自 Matplotlib 文档的以下代码 import numpy as np import matplotlib pyplot as plt import matplotlib animation as animation im
  • CORS 中的 POST/GET 与 PUT/DELETE

    我刚刚读过this https www w3 org Security wiki Same Origin Policy 同源策略允许使用 GET 和 POST 的跨源 HTTP 请求 方法 但拒绝源间 PUT 和 DELETE 请求 PUT
  • 使用VBA调用存储过程

    我正在使用 Access 2010 用户前端和 Microsoft SQL Server 2008 后端工作 Access 中的表都链接到 SQL Server 数据库 我有一个存储过程 它将新值 由参数提供 插入到表中 我之前问过类似的问
  • Ruby on Rails - 表情符号未保存在 MySQL 中

    我正在开发一个 Rails 应用程序 用户可以将照片上传到他们的个人资料中 每张照片都有一个标题 该标题应该支持表情符号 尽管将表的编码更改为utf8mb4并修改数据库 yml当我尝试保存标题中带有表情符号的照片时 MySQL 返回错误 字
  • ThreadStart.BeginInvoke 在 Compact 框架上抛出 NotSupportedException

    我正在一个紧凑框架项目上使用线程 并且代码如下所示 当我尝试进入 StartThreads 时 会抛出 NotSupportedException 这看起来有点奇怪 为什么异常是在调用 StartThreads 的行上抛出的 而不是在内部抛
  • purrr 将 t.test 映射到分割的 df 上

    我是新来的咕噜声 Hadley https stackoverflow com users 16632 hadley有前景的函数式编程R库 http blog rstudio org 2015 09 29 purrr 0 1 0 我正在尝试
  • 为什么人们不访问 Rspec 中的数据库?

    我经常看到Rspec中使用mock的代码 如下所示 describe GET show do it should find and assign question do question Question new Question shou
  • 如何配置 Nginx 以使用 html5 模式

    对于 angularjs 中的干净网址 我必须使用 locationProvider html5Mode true 但是当我刷新页面时 它显示 404 我读到我需要配置服务器文件 结构 html views home html about
  • Spark DataFrame:对组进行操作

    我有一个正在操作的 DataFrame 我想按一组列进行分组 并按组对其余列进行操作 正常情况下RDD land 我认为它看起来像这样 rdd map tup gt tup 1 tup 2 tup 3 tup groupByKey forE
  • document.getElementById 对于单标签 DIV 失败

    我的 HTML 页面上有 2 个 DIV div div div div 我有一个脚本可以访问网络服务并用数据填充它们 document getElementById divDebug innerHtml rawResult documen
  • 最低限度的文本清理

    在接受 存储 处理和显示 Unicode 文本的应用程序中 为了讨论的目的 我们假设它是一个 Web 应用程序 哪些字符应该always从传入文本中删除 我能想到一些 大部分列在C0 和 C1 控制代码维基百科文章 http en wiki
  • 从命令行执行Java

    我的桌面上有一个名为 Stuff 的文件夹 在该文件夹中我有以下内容 你好 java mail jar 而Hello java是从mail jar导入的 所以我需要告诉Hello java寻找mail jar 从 Windows 命令行和
  • 仅使用 Dockerfile 中的其他更改重建相同的 docker 映像

    我使用 Dockerfile 构建 Docker 映像 构建镜像后 我对 Dockerfile 进行了一些基本更改 是否可以仅通过额外的更改来重建相同的映像 由于创建图像需要很长时间 因此我不想完全构建它 提前致谢 所有 docker 构建
  • 设置私有 luarocks 存储库

    对于我的设置 我需要一个 luarocks rock 的私有存储库 我可以将它们安装在我的开发环境中 而无需连接到互联网 为 luarocks 设置远程存储库的步骤是什么 我可以使用 sftp 服务器吗 有人有过这样的经历吗 在深入研究这个
  • C++:类成员引用有效性?

    Class A A int foo m foo foo int m foo int main void A bar 0 int var 5 bar new A var std cout lt lt Is m foo still valid
  • Python中按多个条件排序

    我正在使用Python 3 8 我试图按分数对玩家进行排序 按降序排列 然后 只有当他们具有相同的分数时 才按排名排序 我已经读过排序方法 https docs python org 3 8 howto sorting html Pytho
  • 从其他服务器下载之前是否可以动态压缩文件?

    我想知道是否可以编写浏览器扩展或简单的 Java 脚本代码 其中包含指向不同位置的 URL 列表 可以将所有内容压缩在一起 我是说 例如 有 3 个不同的图像文件 http example1 com a png http example1
  • D3 在将 .data() 设置为附加元素时抛出“无法读取 null 的属性‘ownerDocument’”

    我收到此错误 未捕获的类型错误 无法读取 null 的属性 ownerDocument 这是来自设置的行 data 到最近附加的元素d3 const someSet someSelection filter some filter some