Text.splitText()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

La méthode Text.splitText() sépare le nœud Text en deux nœuds au niveau de l'indice spécifié, et conserve les deux nœuds dans l'arbre en tant que voisins.

Après la séparation, le nœud actuel contient tout le texte jusqu'à l'indice spécifié, et un nœud nouvellement créé du même type contient le texte restant. Le nœud nouvellement créé est retourné à l'appelant. Si le nœud original avait un parent, le nouveau nœud est inséré en tant que voisin suivant du nœud original. Si l'indice est égal à la longueur du nœud original, le nœud nouvellement créé ne contient pas de données.

Des nœuds texte séparés peuvent être concaténés en utilisant la méthode Node.normalize().

Une DOMException avec la valeur INDEX_SIZE_ERR est levée si l'indice spécifié est négatif ou est supérieur au nombre d'unités 16-bit dans le texte du nœud ; une DOMException avec la valeur NO_MODIFICATION_ALLOWED_ERR est levée si le nœud est en lecture seule.

Syntaxe

js
noeudRemplacant = noeudTexte.splitText(indice);

Exemple

Dans cet exemple, le nœud texte d'un <p> est séparé en deux nœuds texte et un <span> est inséré entre les deux.

html
<body>
  <p id="p">foobar</p>

  <script type="text/javascript">
    var p = document.getElementById("p");
    var noeudTexte = p.firstChild;

    // coupe entre foo et bar
    var noeudRemplacant = noeudTexte.splitText(3);

    // crée un span avec ' contenu du span '
    var span = document.createElement("span");
    span.appendChild(document.createTextNode(" contenu du span "));

    // ajoute le span avant 'bar'
    p.insertBefore(span, noeudRemplacant);

    // le résultat est <p id="p">foo<span> contenu du span </span>bar</p>
  </script>
</body>

Spécifications

Specification
DOM Standard
# ref-for-dom-text-splittext①

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi

  • L'interface Text à laquelle cette méthode appartient.
  • La méthode opposée : Node.normalize.