Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Špatně je ten předpoklad, že <body> vypadá tak, jak jsi psal. Určitě toho tam bude mnohem víc.
Wikan 18.09.2024 15:37
Wikan
Ale nemám, element body vypadá přesně jak je tady.
MAREK999 19.09.2024 10:22
MAREK999
Chápu, že tomu věříš, ale prostě to tak není. nový
Wikan 19.09.2024 10:48
Wikan
Tak ak tvoj body vyzerá: <body> 1 </body> Tak serializovane to vyzerá: <body>/n1/n</body> Le… poslední
Ale 19.09.2024 11:19
Ale

Tak ak tvoj body vyzerá:


<body>
1
</body>

Tak serializovane to vyzerá:


<body>/n1/n</body>

Lenže, zrejme máš medzeri za "1", alebo nejaké odsadenie pred </body>

Ak máš:


<html>
    <body>
        1
    </body>
</html>

Tak vlastne máš serializované:


<html>\n\s\s\s\s<body>\n\s\s\s\s\s\s\s\s1\n\s\s\s\s</body>\n</html>

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:


<html>
    <body>
1

















    </body>
</html>

Minimálne v samotnom DOM.

A ak používaš nebodaj nejaké online "REPL", tak ten má úplné inú podobu DOM.

Zpět do poradny Odpovědět na původní otázku Nahoru