11548 sujets
Eh bien, je vais peut-être me répéter, mais tu peux essayer ce que donne un hasChildNodes()

Switche a écrit :
J'ai déjà eu des problèmes importants avec ca. Maintenant j'utilise toujours la manipulation des noeuds plutot que innerHTML.
Oui, mais le fait de passer par la manipulation des noeuds permet justement d'éviter de se poser la question qui est à la base de ce sujet.

Je précise que je ne cherche pas à t'ennuyer mais à essayer de comprendre ton besoin.
OK, alors voila un code source qui permettra de mieux comprendre mes besoins.
On constate qu'au niveau de la balise BR, il y a un souci[/i]
<html>
<head><title>Test</title></head>
<body>
<p id="paragraphe">
<em>Salut, <b>Ceci est un test</b>, on constate<br />que cela ne fonctionne pas correctement.</em>
</p>
</body>
<html>
<script language="javascript">
// Les types de noeud a utiliser en argument de la fonction analyseNodes().
var ALL_NODE = -1;
var ELEMENT_NODE = 1;
var TEXT_NODE = 3;
// Parcours le contenu d'un noeud et applique une fonction a chacun des fils.
// Il est possible de passer un argument en option a cette fonction.
// 'type_node' est le type de noeud sur lequel la fonction est lancee (ELEMENT_NODE/TEXT_NODE/ALL_NODE).
function analyseNodes(start_node,type_node,before_function,after_function,arg)
{
var node,bool;
for (var i=0;i<start_node.childNodes.length;i++)
{
node = start_node.childNodes[i];
bool = (type_node == ALL_NODE || node.nodeType == type_node);
if (bool && before_function) before_function(node,arg);
if (node.nodeType == ELEMENT_NODE)
analyseNodes(node,type_node,before_function,after_function,arg);
if (bool && after_function) after_function(node,arg);
}
}
// Recupere le texte contenu dans un noeud ainsi que tous ses fils.
function getNodeHtml(node)
{
var struct = new Object();
var extract2 = function (node,struct){ if (node.nodeType == ELEMENT_NODE) struct.text += '</' + node.nodeName + '>'; }
var extract = function (node,struct)
{
if (node.nodeType == ELEMENT_NODE) struct.text += '<' + node.nodeName + '>';
if (node.nodeType == TEXT_NODE) struct.text += node.nodeValue;
}
struct.text = '';
analyseNodes(node,ALL_NODE,extract,extract2,struct);
return struct.text;
}
alert(getNodeHtml(document.getElementById('paragraphe'))); </script>
On constate qu'au niveau de la balise BR, il y a un souci[/i]