Я создал следующий документ:Как получить доступ к parentNode выбора 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: г, чтобы он отображался поверх других линий, но я не знаю, как правильно выбрать 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 работает, но я хотел, чтобы убедиться, что «это» является .Строка, поэтому я предпочел использовать current_gene_pcp, но p2 возвращает <html></html>
в качестве родителя, даже если p3 возвращает <g></g>
. Эта последняя версия выглядит как ошибка, ожидающая появления. Есть ли способ лучше?
Такое поведение является неустойчивым. Когда я пробую это в Chrome в сочетании с стилями ': hover', стили будут правильно применены. Когда я пытаюсь это сделать в Firefox (v20), стили вообще не применяются. Когда я удаляю этот код «mouseover», стили правильно применяются в Firefox. Я предполагаю, что это вызвано «наведением мыши» элемента, пытающимся удалить себя, прежде чем оно будет присоединено к последнему ребенку его DOM. –