javascript – d3.js v4 – 嵌套选择
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – d3.js v4 – 嵌套选择,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1246字,纯文字阅读大概需要2分钟。
内容图文
![javascript – d3.js v4 – 嵌套选择](/upload/InfoBanner/zyjiaocheng/781/2c2eee317a134b5e99eb15a43637715d.jpg)
在d3.js v4中,嵌套选择似乎不像过去那样有效.
这工作(在第3节):
var data = [["1-a", "1-b"], ["2-a", "2-b"]];
var tbody = d3.select("tbody");
var row = tbody.selectAll("tr").data(data);
row.exit().remove();
row.enter().append("tr");
var cell = row.selectAll("td").data(function(d){ return d;});
cell.exit().remove();
cell.enter().append("td");
cell.text(function(d){ return d; });
https://jsfiddle.net/nwozjscs/
但不是在v4:https://jsfiddle.net/nwozjscs/1/
我的感觉是这与合并(…)更改有关,但我无法找到在v4中编写嵌套选择的正确方法的示例.
解决方法:
我想我明白了.如果在连接下一层数据之前将输入和更新选择合并为单个选择,它似乎可以正常工作.这样,任何新数据以及顶级的任何现有数据都将在下一级别被正确考虑.
如果你仔细想想,这就完全有道理了.我觉得我太习惯了v3的魔力来看明显的.
请评论是否有更好的方法来做到这一点!
https://jsfiddle.net/nwozjscs/2/
function render(data){
var tbody = d3.select("tbody");
var row = tbody.selectAll("tr").data(data);
var rowenter = row.enter().append("tr");
var cell = row.merge(rowenter)
.selectAll("td").data(function(d){ return d;});
cell.enter().append("td").text(function(d){ return d; });
}
render([["1-a", "1-b"], ["2-a", "2-b"]]);
setTimeout(function(){
render([["1-a", "1-b", "1-c"], ["2-a", "2-b", "2-c"], ["3-a", "3-b", "3-c"]]);
}, 2000);
内容总结
以上是互联网集市为您收集整理的javascript – d3.js v4 – 嵌套选择全部内容,希望文章能够帮你解决javascript – d3.js v4 – 嵌套选择所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。