d3js를 처음 사용하고 d3js 캔버스 객체의 인스턴스를 저장하려고합니다. 저장 한 후에는 저장된 d3js 캔버스의 요소를 얻고 싶습니다.캔버스의 인스턴스 가져 오기 d3js
EDITED 질문 : 는 기본적으로 내가 뭘하고 싶은 것은 그들이 그려 후 d3.json의 함수 내에서 그려 요소를 액세스 할 수 있습니다. 다음은
내 코드의 HTML과 자바 스크립트입니다 :HTML Before d3.json load:
<div id="model_container" style="position: fixed; top: 0px; bottom: 0px; left: 0px; right: 20%">
HTML After d3.json load:
<div id="model_container" style="position: fixed; top: 0px; bottom: 0px; left: 0px; right: 20%">
.
.
.
.
<g id='reactions'>
<g id='r0' class='reaction'>
<g class='reaction-label-group' transform='translate(360,500)'>
<text class='reaction-label label'>HELLO</text>
<g id='r1' class='reaction'>
<g class='reaction-label-group' transform='translate(365,500)'>
<text class='reaction-label label'>HELLO2</text>
</div>
JavaScript:
var canvasMap = d3.json(document.getElementById("model").value, function(error, data) {
if (error) console.warn(error);
var options = {menu: 'all', canvas_size_and_loc: { x: '200', y: '200', width: '5000', height: '5000' }};
var b = escher.Builder(null, data, null, d3.select('#model_container'), options);
b.map.new_reaction_from_scratch('GAPD',{ x: 350, y: 315 }, 90);
b.map.new_reaction_from_scratch('PGK',{ x: 950, y: 315 }, 90);
b.map.select_all();
});
canvasMap.selectAll(".reaction-label-group").each(function (d) { console.log(d) });
D3 사용하지 않음
내 용어에 대한 사과, 다시 새 d3js입니다. 캔버스에서 나는 그림 영역을 의미했습니다. 그러나 본질적으로 내가하고 싶은 것은 d3.json 함수 내에서 그려진 요소에 접근하는 것입니다. 나는 원래의 질문을 편집 할 것이다. – Ann
선택/입력 기능을 사용하여 d3 그리기 방법을 사용하는 것이 좋습니다. 그러면 그려진 요소는 선택 항목으로 액세스 할 수 있으며 나중에 사용되거나 업데이트되거나 제거됩니다. –