examples ejemplos javascript d3.js prepend

javascript - ejemplos - d3.js examples



D3.js prepend(similar a jQuery prepend) (2)

Me gusta el uso de append en D3, y estoy buscando anteponer.

¿Existe esto en D3?


Puedes usar

selection.insert(newElement[, anotherExistingElement])

Por ejemplo:

selection.insert("div",":first-child")

El código anterior insertará un div antes del primer elemento secundario del elemento seleccionado. Consulte la documentation para obtener más información.

Otra posible forma de insertar elementos antes de cualquier nodo (incluidos los textos sin formato):

var parentEl = d3.select("div").node(); parentEl.insertBefore(document.createElement("div"), parentEl.childNodes[0]);

<script src="https://d3js.org/d3.v3.min.js"></script> <div> This is a plain text <a></a> </div>


Selection.lower ()

selection.lower() colocará un elemento como el primer hijo de su padre.

Junto con el apéndice de d3, selection.append().lower() puede replicar el prepend de jQuery

Desde D3 v4 +, D3 tiene los métodos selection.raise() y selection.lower() . Estos se usan con mayor frecuencia para mover elementos en un SVG para que ciertos elementos aparezcan sobresalientes de otros, donde el orden de los elementos SVG en el DOM determina el orden de dibujo. Pero, se pueden usar para cualquier elemento en el DOM.

Aquí hay una demostración rápida usando divs y párrafos:

var div = d3.select("div"); div .append("p") .text("Inserted") .lower(); console.log(div.html());

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script> <div id="div"> Text <p> Child Paragraph </p> </div>

El fragmento toma un div con los siguientes contenidos:

Text <p> Child Paragraph </p>

Y usa d3 para agregar un nuevo párrafo y luego bajarlo para que la estructura sea la siguiente:

<p>Inserted</p> Text <p> Child Paragraph </p>

Y para comparar con el prepend de jQuery:

var div = $("div"); div .prepend("<p>Inserted</p>"); console.log(div.html());

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="div"> Text <p> Child Paragraph </p> </div>

Más información

Selection.lower () se implementa como tal (consulte los docs para obtener más información):

selection.each(function() { this.parentNode.insertBefore(this, this.parentNode.firstChild); });