11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour
J'essaie d'écrire une fonction qui insère un bloc div dans un autre.

function créerBasdePage() 
	{
	var my_div1 = null;
	var my_div2 = null;
	blocBas = document.createElement("div");
	blocBas.className="numero1";
	blocBas.setAttribute("align", "center");
/*On insère le bloc après le dernier fils */
	my_div1=document.body.lastChild;
	document.body.insertBefore(blocBas,my_div1);
/*On définit le bloc qui contiendra le titre*/
	bloTitre   = document.createElement("div");
	bloTitre.className="numero1"; 
	bloTitre.innerHTML=getMetaContent("author");
	my_div2=document.body.blocBas.firstChild;
	document.body.insertBefore(bloTitre, my_div2);
	}

J'ai donc commencé par créer mon premier div appélé blocbas, avec quelques attributs. et je l'insère dans mon document body avant le dernier fils.

Je crée donc le second bloc div bloTitre vec sa classe et son contenu( qui fait appel à une autre fonction getMetaContent) jusque la pas de problème.
Ensuite je veux insérer ce bloc (bloTitre ) dans le premier (blocBas).
Alors jai posé my_div2=document.body.blocBas.firstChild; et la j'obtiens un message d'erreur
"document.body.blocBas.firstChild" a une valeur nulle ou n'est pas un objet

Je suis perdu à ce niveau
Modifié par foxrol (19 Dec 2006 - 06:12)
Le plus simple est d'attribuer des id à tes éléments créés. Ce sera de plus plus propre, et il te suffira de faire des document.getElementById("machin") pour y accéder. Je ne suis pas sûr en effet que l'accès via des propriétés comme tu le fais est possible dans ce contexte.
Salut,
Gilles a écrit :
Je ne suis pas sûr en effet que l'accès via des propriétés comme tu le fais est possible dans ce contexte.
Pour ma part, je suis sûr que non, et je ne vois pas l'intérêt d'utiliser "document.body.blocBas" alors que "blocBas" est encore accessible.