Autor Zpráva
Saky
Profil
V JS nejsem příliš zběhlý, prosím proto o radu a postrčení správným směrem.

Mám poměrně dlouhý řetězec (několik vět) a potřeboval bych jej rozdělit. Našel jsem několik tipů na zkrácení, avšak potřeboval bych text pouze rozdělit a mezi ně vložit tlačítko "Číst dále", tedy:
První část (150 znaků)<div class="dale">Druhá část</div>
To pouze v případě, že je text delší než oněch 150 znaků. Ideálně s dělením dle mezer, tedy na celá slova, jak tomu mám v PHP…
Řešil někdo něco podobného?

Díky za každý TIP
Witiko
Profil
var MAX_LENGTH = 150;

function zkrať(text) {
    return text.length > MAX_LENGTH?
      text.substr(0, MAX_LENGTH) + "<div class=\"dale\">" + text.substr(MAX_LENGTH) + "</div>":
      text;
}

zkrať(nějakýDlouhýText);


Mimochodem to s tím HTML je poměrně prasečina, doporučuji vytvořit za pomoci document.createElement.
Saky
Profil
Witiko:
Super, děkuji :-). Ten div tam byl kvůli tomu, že to tak je v PHP verzi, ale pravda je, že na tom nezáleží, poupravím to :-)

Ještě jednou díky :)
Chamurappi
Profil
Mažu z titulku jQuery, dotaz s ním nijak nesouvisí.

Reaguji na Witika:
V DOMu je pro tento účel stvořená metoda splitText — rozetne textový uzel ve dva na určeném místě. Mezi ně pak jde krásně přidat element.

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