Bonjour !
je suis en train de programmer toute une librairie permettant un emploi plus facile des éléments du DOM.
Cependant, un problème dont je ne trouve pas la source à fait surface il y a quelques heures; une fois que je créer deux éléments,
le premier n'est plus détecté et il m'est impossible de modifier son innerHTML, son style...

Voici le code qui semble poser problème :

element.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
"use strict";
 
class Element {
	constructor(tagName, HTMLContent = "", container = document.getElementsByTagName("body")[0]) {
		this.tagName = tagName;
		this.container = container;
		this.initBody(container);
		this.contentHandler = new HTMLContentHandler(this);
		this.styleHandler = new StyleHandler(this);
 
		this.contentHandler.set(HTMLContent);
	}
 
	initBody() {
		let tmpId = new Id("tmp");
 
		writeElementIn(this.tagName, [tmpId], "", this.container);
		this.body = document.getElementById(tmpId.value);
		tmpId.removeOf(this);
	}
}
 
/* ### FUNCTIONS ### */
 
function writeSimpleElementInById(tagName, content, elementContainerId) {
	writeElementInById(tagName, [], content, elementContainerId);
}
 
function writeSimpleElementIn(tagName, content, elementContainer) {
	writeElementIn(tagName, [], content, elementContainer);
}
 
function writeElementInById(tagName, attributes, content, elementContainerId) {
	writeElementIn(tagName, attributes, content, document.getElementById(elementContainerId));
}
 
function writeElementIn(tagName, attributes, content, elementContainer) {
	elementContainer.innerHTML += "<" + tagName + " " + getHTMLCodeFromAttributes(attributes) + ">" + content + "</" + tagName + ">";
}
voici deux autres classes qui ne me semble pas être la cause du problème, mais voilà tout de même :


html_content_handler.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
"use strict";
 
class HTMLContentHandler {
	constructor(element) {
		this.element = element;
		this.set("");
	}
 
	clear() {
		this.set("");
	}
 
	add(HTMLCode) {
		this.element.body.innerHTML += HTMLCode;
	}
 
	set(HTMLCode) {
		this.element.body.innerHTML = HTMLCode;
	}
 
	get() {
		return this.element.body.innerHTML;
	}
}
style_handler.js

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
"use strict";
 
class StyleHandler {
	constructor(element) {
		this.element = element;
	}
 
	setColors(backgroundColor, color) {
		this.backgroundColor = backgroundColor;
		this.color = color;
	}
 
	set backgroundColor(color) {
		this.element.body.style.backgroundColor = color.getCSS();
	}
 
	set color(color) {
		this.element.body.style.color = color.getCSS();	
	}
 
	get style() {
		return this.element.body.style;
	}
 
}
Merci beaucoup de l'attention !

J'espère que l'on aura pas trop de difficultés à trouver...