javascript - Appending multiple non-nested elements for each data member with D3.js -
i create multiple non-nested elements using d3 create structure this:
<div id="parent"> <p> data[0] </p> <p> data[0] </p> <p> data[1] </p> <p> data[1] </p> <p> data[2] </p> <p> data[2] </p> </div> creating nested structures go like
d3.select('#parent').selectall('p').data(data).enter(). append('p')...append('p') but maintain original selection after append, continue appending parent element. thank you!
the idomatic way of doing is nesting:
var divs = d3.select('#parent').selectall('p').data(data).enter().append('div'); divs.append('p') divs.append('p') which creates:
<div id="parent"> <div> <p> data[0] </p> <p> data[0] </p> </div> <div> <p> data[1] </p> <p> data[1] </p> </div> <div> <p> data[2] </p> <p> data[2] </p> </div> </div> if won't work, save selection , repeatedly append:
var enterselection = d3.select('#parent').selectall('p').data(data).enter(); enterselection.append('p') enterselection.append('p') then sort you've added:
d3.select('#parent').selectall('p').sort(function(a, b){ return a.index - b.index; }) you'll need add index property each element of data describes sort order. normal i defined in context of particular selection, lost when reselect.
Comments
Post a Comment