d3与svg在处理元素时的对比
d3 vs. svg When Dealing with Element
在使用之间有偏好吗
d3.selectAll()
和
svg.selectAll()
当
var svg = d3.select("#someChart")
.append("svg")
.attr("width", w)
.attr("height", h);
在处理svg标记中的元素(创建、删除)时?
d3.selectAll(...)
搜索整个文档,而svg.selectAll(...)
将搜索限制在选择中的SVG。后者预计对大型文档更具性能。
然而,还有另一个重要的区别:如果var svg
引用了一个包含多个元素的d3选择,那么像svg.selectAll('path')
这样的子选择将按预期选择每个<svg>
中的所有<path>
,但最终的选择也将保持对具有不同<svg>
父代的<path>
之间的"表亲"关系的"意识"。
正如博斯托克在这里解释的那样,这被称为嵌套选择。嵌套选择用于构建表,因为表意味着两级层次结构(每行n行,然后m列)。嵌套的svg选择类似于表,如果您有一个多级数据集,希望从中创建多个svg,每个svg都包含多个趋势线路径(或多个条形图<rect>
s等)。
相关文章:
- 如何使用jquery处理php循环通过元素
- 处理表行的当前子级,而不是名称或类的所有元素
- 在MVVM视图模型中处理应用程序范围的元素
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- stickyfloat无法处理绝对定位的元素
- SVG元素——处理和选择文本
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- jQuery on('单击',..)未处理附加的元素
- 如何使用角度事件处理程序引用输入元素的值
- d3与svg在处理元素时的对比
- 基于类附加点击处理程序,只要元素获得该类
- Meteor - 从另一个模板事件处理程序访问 DOM 元素
- stopPropagation是否还会阻止同一元素上的其他处理程序运行
- 防止通过父元素处理程序触发处理程序
- JavaScript 从表单元素处理复选框创建 URL
- 使用嵌套元素处理触摸事件
- 使用嵌套的HTML元素处理拖放
- Javascript元素处理
- AJAX表单元素处理
- 通过透明元素处理 JS 事件