我创建下列文件:如何访问d3.js选择的父节点?
<g>
<path class="line" name="gene_1" stroke="#aec7e8" d="M10.47..."></path>
<path class="line" name="gene_2" stroke="#aec7e8" d="M10.47..."></path>
<path class="line" name="gene_3" stroke="#aec7e8" d="M10.47..."></path>
...
</g>
当我鼠标放在每个路径我想最后追加它里面SVG:g根据它出现在其他行的顶部,但我不知道如何正确选择parentNode:
function onmouseover(d, i){
var current_gene_name = d3.select(this).attr("name"),
current_gene_pcp = d3.select(".line[name=" + current_gene_name + "]");
p1 = this.parentNode
p2 = current_gene_pcp[0].parentNode
p3 = current_gene_pcp[0][0].parentNode
//p.appendChild(this);
}
P1的作品,但我想,以确保“本”是一个.line区段,所以我更愿意使用current_gene_pcp,但P2返回<html></html>
作为父母,即使P3返回正确的<g></g>
。这最后的版本看起来像是一个等待发生的错误。有没有更好的办法?
此行为是不稳定的。当我在Chrome中结合使用':hover'样式进行试用时,这些样式可以正确应用。当我在Firefox(v20)中尝试这个时,样式根本不应用。当我删除这个'mouseover'代码时,这些样式在Firefox中正确应用。我想这是由于元素的mouseover'在它重新作为它的DOM的最后一个子元素之前尝试删除它自己造成的。 –