JS vypisuje řádky které neexistují
Ahoj, mám takový kód
HTML
<body>
1
</body>
JavaScript
const BODY = document.body.textContent;
const ARRAY = BODY.split('\n');
console.log("Výpis pole: ", JSON.stringify(ARRAY, null, 2));
console.log("Počet řádků v body:", ARRAY.length)
CONSOLE
Výpis pole: [
"",
"1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
Počet řádků v body: 19
Otázka zní proč, co mám špatně? Díky
Použi filter metódu.
Špatně je ten předpoklad, že <body> vypadá tak, jak jsi psal. Určitě toho tam bude mnohem víc.
Ale nemám, element body vypadá přesně jak je tady.
Chápu, že tomu věříš, ale prostě to tak není.
Tak ak tvoj body vyzerá:
Tak serializovane to vyzerá:
Lenže, zrejme máš medzeri za "1", alebo nejaké odsadenie pred </body>
Ak máš:
Tak vlastne máš serializované:
A to ešte prehliadač sám dopĺňa html tag okolo body, ak html tag chýba.
Z výstupu, ktorý ti split dáva, to vyzerá že máš nejaký takýto kód:
Minimálne v samotnom DOM.
A ak používaš nebodaj nejaké online "REPL", tak ten má úplné inú podobu DOM.
zkus zapojit mozek a zkoumat to všestranně,´:
-neuzavřený tag body.
-zkus jiný tag a document.querySelector(X).textContent : X= body, testovaciDiv,HTML,head
-podívej se na to bez splitu
-pomocník je webová konzole, tam vidíš výsledek hned, jak (skoro, někdy), píšeš
-takže můžeš vidět rovnou co je zač document.body, jaké další mu vlastnosti,
-
moje spekulace:
ty si myslíš, že analyzuješ element body, tím bych si nebyl jistý. například ajax odpovědi má taky body a je to shoda jmen . zkusil bych tedy to d.qS("body")