bonjour, j'ésperes que vous pouvez m'aidé a réparé cette erreur
Citation :
Type et valeur du node:object null container.js:137 Uncaught TypeError: Cannot read property 'childNodes' of null container.js:139
le code
Citation :
<script> /* On récupère la SECTION principale. C'est dans celle-ci que le script va travailler */ var main_section = document.getElementById('main_section');
/* On récupère la SECTION principale. C'est dans celle-ci que le script va travailler */ var main_section = document.getElementById('main_section');
/* On initialise les MENUs et les PAGEs C'est à dire qu'on active le premier TAB (onglet) de chaque SECTION et on affiche la PAGE correspondante */ var menu = childs(main_section)[1]; reset(menu);
/* Cette fonction va selectionner le premier TAB du MENU fourni, et afficher la PAGE correspondante en faisant un RESET des MENUs qui sont dans le CONTENT */ function reset(menu) { // En paralèlle au menu est le contenu Cf HTML var content = next(menu);
// On reset le menu courant var tabs = childs(menu); for(var k = 0; k < tabs.length; k++) { // Si c'est le premier onglet du menu if(k == 0) { $(tabs[k]).removeClass('unactive').addClass('active'); tabs[k].onclick = function(){ return false; }; } // Sinon .. else { $(tabs[k]).removeClass('active').addClass('unactive'); tabs[k].onclick = function(){ click(this); }; } }
// On reset les pages courantes var pages = childs(content); for(var k = 0; k < pages.length; k++) { if(k == 0) { $(pages[k]).removeClass('undisplayed').addClass('displayed'); } else { $(pages[k]).removeClass('displayed').addClass('undisplayed'); } }
// On RESET les menus des pages var menus = content.getElementsByClassName('menu'); for(var k = 0; k < menus.length; k++) { reset(menus[k]); } } /* Cette fonction selectionne le TAB fourni, active la PAGE correspondante, et RESET les MENUs du CONTENT. */ function click(tab) { // Menu et content var menu = tab.parentNode; var content = next(menu);
// On reset le menu courant var tabs = childs(menu); var n = -1; for(var k = 0; k < tabs.length; k++) { // Si c'est l'onglet sur lequel on a cliqué if(tabs[k] == tab) { n = k; $(tabs[k]).removeClass('unactive').addClass('active'); tabs[k].onclick = function(){ return false; }; } // Sinon ... else { $(tabs[k]).removeClass('active').addClass('unactive'); tabs[k].onclick = function(){ click(this); }; } }
// On reset les pages courantes var pages = childs(content); for(var k = 0; k < pages.length; k++) { if(k == n) { $(pages[k]).removeClass('undisplayed').addClass('displayed'); } else { $(pages[k]).removeClass('displayed').addClass('undisplayed'); } }
// On reset les menus des pages courantes var menus = content.getElementsByClassName('menu'); for(var k = 0; k < menus.length; k++) { reset(menus[k]); } }
/* Retourne le Noeud du DOM (hors noeud de text) suivant le node donné */ function next(node) { var next = node.nextSibling; while(next && next.nodeType != 1) { next = next.nextSibling; } return next; } /* Retourne les Noeud du DOM (hors noeud de text) enfants du node donné */ function childs(node) { var child_nodes_temp = node.childNodes; var child_nodes = new Array(); for(var k = 0; k < child_nodes_temp.length; k++) { if(child_nodes_temp[k].nodeType == 1) { child_nodes.push(child_nodes_temp[k]); } } return child_nodes; } </script>
le html
Citation :
<!-- Début menu main_section --> <div id="main_section" class="section">
<!-- MEME SI VIDE, TOUJOURS LAISSER CE H2 - LE CSS PEUT LE RENDRE INVISIBLE EN CAS DE BESOIN SI VRAIMENT GENANT, IL PEUT ETRE RETIRER A CONDITION DE REMPLACER "childs(main_section)[1]" PAR childs(main_section)[0] ET DE FAIRE ATTENTION ... -->
Marsh Posté le 12-03-2014 à 11:13:44
bonjour, j'ésperes que vous pouvez m'aidé a réparé cette erreur
Type et valeur du node:object
null container.js:137
Uncaught TypeError: Cannot read property 'childNodes' of null container.js:139
le code
<script>
/*
On récupère la SECTION principale.
C'est dans celle-ci que le script va travailler
*/
var main_section = document.getElementById('main_section');
/*
On récupère la SECTION principale.
C'est dans celle-ci que le script va travailler
*/
var main_section = document.getElementById('main_section');
/*
On initialise les MENUs et les PAGEs
C'est à dire qu'on active le premier
TAB (onglet) de chaque SECTION
et on affiche la PAGE correspondante
*/
var menu = childs(main_section)[1];
reset(menu);
/*
Cette fonction va selectionner le premier TAB du MENU fourni,
et afficher la PAGE correspondante en faisant un RESET des
MENUs qui sont dans le CONTENT
*/
function reset(menu)
{
// En paralèlle au menu est le contenu Cf HTML
var content = next(menu);
// On reset le menu courant
var tabs = childs(menu);
for(var k = 0; k < tabs.length; k++)
{
// Si c'est le premier onglet du menu
if(k == 0)
{
$(tabs[k]).removeClass('unactive').addClass('active');
tabs[k].onclick = function(){ return false; };
}
// Sinon ..
else
{
$(tabs[k]).removeClass('active').addClass('unactive');
tabs[k].onclick = function(){ click(this); };
}
}
// On reset les pages courantes
var pages = childs(content);
for(var k = 0; k < pages.length; k++)
{
if(k == 0)
{
$(pages[k]).removeClass('undisplayed').addClass('displayed');
}
else
{
$(pages[k]).removeClass('displayed').addClass('undisplayed');
}
}
// On RESET les menus des pages
var menus = content.getElementsByClassName('menu');
for(var k = 0; k < menus.length; k++)
{
reset(menus[k]);
}
}
/*
Cette fonction selectionne le TAB fourni, active la PAGE correspondante,
et RESET les MENUs du CONTENT.
*/
function click(tab)
{
// Menu et content
var menu = tab.parentNode;
var content = next(menu);
// On reset le menu courant
var tabs = childs(menu);
var n = -1;
for(var k = 0; k < tabs.length; k++)
{
// Si c'est l'onglet sur lequel on a cliqué
if(tabs[k] == tab)
{
n = k;
$(tabs[k]).removeClass('unactive').addClass('active');
tabs[k].onclick = function(){ return false; };
}
// Sinon ...
else
{
$(tabs[k]).removeClass('active').addClass('unactive');
tabs[k].onclick = function(){ click(this); };
}
}
// On reset les pages courantes
var pages = childs(content);
for(var k = 0; k < pages.length; k++)
{
if(k == n)
{
$(pages[k]).removeClass('undisplayed').addClass('displayed');
}
else
{
$(pages[k]).removeClass('displayed').addClass('undisplayed');
}
}
// On reset les menus des pages courantes
var menus = content.getElementsByClassName('menu');
for(var k = 0; k < menus.length; k++)
{
reset(menus[k]);
}
}
/*
Retourne le Noeud du DOM (hors noeud de text) suivant le node donné
*/
function next(node)
{
var next = node.nextSibling;
while(next && next.nodeType != 1)
{
next = next.nextSibling;
}
return next;
}
/*
Retourne les Noeud du DOM (hors noeud de text) enfants du node donné
*/
function childs(node)
{
var child_nodes_temp = node.childNodes;
var child_nodes = new Array();
for(var k = 0; k < child_nodes_temp.length; k++)
{
if(child_nodes_temp[k].nodeType == 1)
{
child_nodes.push(child_nodes_temp[k]);
}
}
return child_nodes;
}
</script>
le html
<!-- Début menu main_section -->
<div id="main_section" class="section">
<!-- MEME SI VIDE, TOUJOURS LAISSER CE H2 - LE CSS PEUT LE RENDRE INVISIBLE EN CAS DE BESOIN SI VRAIMENT GENANT, IL PEUT ETRE RETIRER A CONDITION DE REMPLACER "childs(main_section)[1]" PAR childs(main_section)[0] ET DE FAIRE ATTENTION ... -->
<h2>Espace membre</h2>
<!-- Début profil -->
<!-- Début menu -->
<ul class="menu_horizontal_profil">
<!-- Début tab -->
<li class="tab">Profile</li>
<li class="tab">Editer Profile</li>
<li class="tab">Mes outils</li>
<li class="tab">Paramètres</li>
<!-- Fin tab -->
<!-- Début clear -->
<div class="clear"></div>
<!-- <fin clear -->
<!-- Fin menu -->
</ul>
<!-- Début content -->
<div class="content">
<!-- Début page -->
<div class="page">
<!-- Fin page -->
</div>
</div>
<!-- Fin content -->
<!-- Fin profil -->
<!-- Début editer profil -->
<!-- Fin editer profil -->
</div>
<!-- Fin menu main_section -->
merci de votre aide
Message édité par ivan941 le 12-03-2014 à 12:00:30