用d3js抓取元素

斯大林

我正在尝试学习d3js库。通过单击面对捕获表的TD元素的问题。我通常用这种方式

window.addEventListener("load", function(){
    document.getElementById("table_id").addEventListener("click",function(e){
            var elem = e.target || e.srcElement;

            if(elem.nodeName != "TD") return;

...
    }
...

所以我需要在d3js中做类似的事情。但是我不知道如何替换.target和.srcElement方法。我有什么

d3.select(#table_id).on('click',function(){
    var elem = ???

this我的桌子上。d3.event这样的信息中click clientX=327, clientY=129d未定义

请帮我在var中获取TD元素。

加布里埃尔

D3js非常灵活,您无需d3.event.target每次都使用

如您所问,您的代码中缺少一些细节:

1. 选择

有两个选择功能d3

d3.select()它获取或找到特定的tagorelementclassor tag id,例如:

d3.select('div')返回第一个div或d3.select('.active')find标签具有名为active的类。在您的情况下,应d3.select('#table_id')在选择功能中使用错过的单引号。

下一个d3选择函数的d3.selectAll()作用类似于,d3.select()但区别在于此函数选择所有参数,例如:

d3.selectAll('p')返回所有p标记或所有Id或类作为参数获取。

2. 此与d之间的区别

this是用于选择要尝试选择的特定标签或对其执行某些操作的参数,并且在selectAll功能上更有用,因为您不知道选择了哪个标签。

d是一个对象或DOM包含所有属性和事件。

因此,我更改了您的代码,希望它可以帮助您d3更好地学习

d3.select("#table_id").on("click",function(){

            var elem=d3.select(this);
            if(elem.attr("name")!=="TD")
                  return;

});

更多信息在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章