Comment supprimer du texte html sans balise ? Supprimer :

<div>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
</div>
0
karim 8 mars 2019 à 12:53

2 réponses

Meilleure réponse

Ceci est juste une solution simple juste pour votre cas.

var content = $("div").find("p");
$("div").empty().append(content);
-1
Bogdan T. Cristian 8 mars 2019 à 09:59

Les nœuds d'élément sont de nodeType 1 , vous pouvez donc parcourir tous les childNodes et .remove() ceux qui n'ont pas un .nodeType de 1, en vous assurant que seuls les éléments sont conservés :

const div = document.querySelector('div');
[...div.childNodes].forEach((node) => {
  if (node.nodeType !== 1) {
    node.remove();
  }
});
<div>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
</div>

Moins élégant, mais vous pouvez également créer un tableau de .children pour obtenir tous les enfants d'éléments, puis effacer le conteneur et ajouter à nouveau tous les enfants d'éléments :

const div = document.querySelector('div');
const children = [...div.children];
div.textContent = '';
children.forEach(child => div.appendChild(child));
<div>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
  ***remove***
  <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p>
</div>
1
CertainPerformance 8 mars 2019 à 09:57