Accessing d3.js element attributes from the datum?

前端 未结 4 1280
鱼传尺愫
鱼传尺愫 2021-01-30 20:28

I\'m trying to access the cx & cy attributes of some specific svg circles which i have already drawn to the screen using d3.js\'s .data() function, can anyone help out? The

4条回答
  •  不要未来只要你来
    2021-01-30 21:03

    Your code is trying to get an svg attribute from an item of data, when what you really want is to get that attribute from the svg DOM element, as in:

    console.log(d3.selectAll(".mynode").attr("cx"));
    

    This will only give you the attribute for the first non-null element of your selection; You can also filter your selection to get the DOM element you are looking for:

    console.log(d3.selectAll(".mynode").filter(_conditions_).attr("cx"));
    

    Or, if you'd like to access the attributes of all selected elements, use this in your each function:

    d3.selectAll(".mynode").each( function(d, i){
      if(d.someId == targetId){
        console.log( d3.select(this).attr("cx") );
      }
    }
    

提交回复
热议问题