我尝试向一些节点添加新的SVG元素。为此,需要通过字符串在文本内容中查找要添加元素的节点,例如查找任何一个在<text>
标签内包含"id0"
的节点。
这是我的HTML层次结构示例:
<pre>
<svg>
<g>
<g>
<text> id3 </text>
<text> 73% </text>
<svg> ... </svg>
</g>
<g>
<svg> ... </svg>
</g>
<g>
<text> id0 </text>
<text> 11% </text>
<svg> ... </svg>
</g>
<g>
<text> id1 </text>
<text> 66% </text>
<svg> ... </svg>
</g>
<g>
<svg> ... </svg>
</g>
</g>
</svg>
</pre>
我确实不知道正确的解决方案,但我认为应该是这样的:
d3.select('svg').select('g').selectAll('g').each(function (d, i) {})
.select('g').select('text').filter(function () {
return (d3.select(this).text() === 'id0')
})
.select(function () {
return this.parentElement;
})
.append('svg')
.attr('width', 400)
.attr('height', 400)
如果标签
<text>
包含"id0"
,则返回父节点并向其添加一个SVG元素。但是在行return this.parentElement;
处出现错误:
当我使用属性'parentElement'在类型'Window'上不存在。
parentElement
或parent
时,类似的错误会发生。