Autor Zpráva
raddimm.xx
Profil
Zdravím
Mám takový problém mám HTML (zjednodušeně zde:)
<div class="p-final-price-wrapper">
  <span class="price-save">
    <span></span>
    <span class="neco"></span>až -40% 
  </span>
</div>

<div class="flags">
  <span class="price-save">
    <span></span>
    <span class="neco"></span>až -50% 
  </span>
</div>

<div id="vysledek">x</div>

a potřebuji pomocí javascriptu získat čistou číslovku "50"

Nedaří se mi nějaký elegantní kód
a) nabrat html pod div.flags
b) očistit od všechno html a různých znaků, musí zůstat jen číslovka
anonym_
Profil *
raddimm.xx:
DOMParser - Web APIs | MDN + na samotnou číslovku pak regulár.
raddimm.xx
Profil
anonym:
asi na mě musíš jak na b*ba :)
Radek9
Profil
raddimm.xx:
To HTML je někde přímo na stránce, nebo ho od někud načítáš do řetězce? Jestli první možnost, tak jde příslušný element jednoduše najít pomocí funkce document.querySelector. Pokud druhá možnost, tak musíš ten řetězec nejprve naparsovat tím DOMParserem, co posílál anonym. Následně stačí vzít textContent toho elementu a nějakým způsobem (nejjednodušeji regulárem /\d+/) z něj dostat to číslo.
anonym_
Profil *
raddimm.xx:
... nebo si ty něco o tom přečteš. Materiál ke studiu máš.
Kcko
Profil
raddimm.xx:
Jak napsali nademnou, cca takto:

let html = `<div class="p-final-price-wrapper">
  <span class="price-save">
    <span></span>
    <span class="neco"></span>až -40% 
  </span>
</div>
 
<div class="flags">
  <span class="price-save">
    <span></span>
    <span class="neco"></span>až -50% 
  </span>
</div>
 
<div id="vysledek">x</div>`;

const parser = new DOMParser();
const parsedDocument = parser.parseFromString(html, "text/html");
let flags = parsedDocument.querySelector('.flags');
let flagsText = flags.innerText;
let result = flagsText.match(/\d+/)[0];

console.log(result);
JsonKody
Profil
raddimm.xx:
Je dost podstatné zminit jestli je toto nějaký cizí web nebo tvuj web na ktery pises skript. Podle toho teprve můžu radit.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0