11548 sujets

JavaScript, DOM et API Web HTML5

Bien le bonjour,

ce n'est peut être pas tout à fait le forum approprié, mais en même temps, on trouve des expressions régulières dans tous les languages et comme je suis actuellement sur JS... donc bref.

En fait, c'est simple. Je n'ai jamais rien compris à ce domaine. J'y peux rien, ça veut vraiment pas rentrer, malgré des PDF de doc, tutos, etc. Donc j'ai trouvé et à peine modifier ce script qui permet d'extraire un UL contenu dans la balise :


var scriptFragment = /[\s]*<[/]?[ul|li].*>.*/ig;
var contenu = elem.innerHTML.replace(scriptFragment, ''));
alert(contenu);

// affichera "salut" par rapport au code ci-dessous.
<ul>
	<li>salut
		<ul>
			<li>autre bonjour</li>
		</ul>
	</li>
</ul>


Ce que je souhaite, c'est maintenant pouvoir faire l'inverse. Ici, concrétement, ça remplace tout le <ul></ul> par rien. Je voudrais faire ça avec le texte. Remplacer le texte avant l'UL par rien.

A savoir qu'il peut s'agir de texte ou d'autres balises HTML.

si qqun a une idée
merci d'avance!
rekam
Moi je proposerai ça :
var scriptFragment = /(.*<li>).*(<ul>.*)/gi;
var contenu = elem.innerHTML.replace(scriptFragment, "$1$2");

alert(contenu);


Avec le code HTML suivant :
<ul>
  <li>testes
    <ul>
      <li>feefef</li>
    </ul>
  </li>
  <li>testes
    <ul>
      <li>feefef</li>
    </ul>
  </li>
</ul>


Ca donne :
<ul>
  <li>
    <ul>
      <li>feefef</li>
    </ul>
  </li>
  <li>
    <ul>
      <li>feefef</li>
    </ul>
  </li>
</ul>