2016-06-08 30 views
6

Jestem po prostu trochę zakłopotany na coś w tej chwili Mam następujący kod, który działa zgodnie z oczekiwaniami, wszystko jest w porządku z nim. Chciałbym jednak wprowadzić drobne zmiany, ponieważ chciałbym, aby następująca funkcja mogła wstawiać znaczniki html w samym tekście, tj.Wstawianie HTML z JS

var str = "Let's get Future Ready!"; 
var split = str.split(""); 
var counter = 0; 

var SI = setInterval(function() { 

    var typeText = $('.typetext'); 
    typeText.append(split[counter]); 
    counter++ 
    if(counter == str.length){clearInterval(SI)} 

},100) 

Więc w tej chwili, to funkcja przyjmuje tablicę, Split, a następnie przy użyciu metody setInterval Mam iterowany na całej długości strun. Dzięki temu tekst może wyglądać tak, jakby był wpisywany.

Jak widzisz, moją początkową wartością jest "var str =" Przygotujmy się na przyszłość! ";

Jednak chciałbym dodać przerwę do mojego wartość STR var str = «Chodźmy
Future gotowy!» '

Po pierwsze jest to możliwe? Po drugie, jeśli ktoś mógłby zaoferować mi jakąś radę, byłbym wdzięczny, dzięki.

Odpowiedz

1

A więc chcesz wstawić podział wiersza w wstawianym tekście HTML?

wstawić

<br /> 

do tablicy w miejscu, w którym chcesz wstawić tekst do break.For wstawiania elementu do wiadomości wygląd tablicy w funkcji splice() javascript: http://www.w3schools.com/jsref/jsref_splice.asp

przykładem z kodem:

var str = "Let's get Future Ready!"; 
var split = str.split(""); 
var counter = 0; 
split = split.splice(18, 0, "<br />"); 
+0

Hej juli0r że jest prawidłowa. W tej chwili czyta cały tekst w jednym wierszu i właśnie tego chciałem. Ale teraz chciałbym dodać
po i przed Future, tak aby wpisał się w nowej linii. czy to możliwe? Dziękuję Ci. – Troy

+1

Edytowałem mój wpis. Array.splice() jest tym, czego szukasz. Możesz łatwo dodać element do tablicy w określonym przez Ciebie indeksie. – juli0r

+0

Dziękuję za pomoc juli0r +1 – Troy

6

Moja sugestia jest zastąpienie znaku | z <br> podczas wykonywania pętli. Sprawdź to tutaj: https://jsfiddle.net/s04zbfcc/

var str = "Let's get|Future Ready!"; 
var split = str.split(""); 
var counter = 0; 

var SI = setInterval(function() { 

    var typeText = $('.typetext'); 

    typeText.append(split[counter] == '|' ? '<br>' : split[counter]); 
    counter++ 

    if(counter == str.length) { 
     clearInterval(SI) 
    } 

},100) 
+0

Dziękuję za twoją opinię Doceniam to, użyłem metody juli0r, ponieważ było najwygodniejsze. Dzięki! – Troy

+2

To jest o wiele lepsze, ponieważ nie jesteś już zależny od tego, jaki łańcuch chcesz wyświetlić. – user3136777

+0

Pytanie brzmi: co się stanie, jeśli tekst się zmieni? Lub jeśli chcesz zrobić dwa linebreaki. Inwestowanie w dobry, łatwy w utrzymaniu i elastyczny kod jest zawsze dobrym pomysłem. –

1

Sprawdź poniższy fragment. Wyjaśnienie w komentarzach

var str = "Let's get Future Ready!"; 
 
var split = str.split(""); 
 
var counter = 0; 
 

 
var SI = setInterval(function() { 
 

 
    var typeText = $('.typetext'); 
 
    typeText.append(split[counter]); 
 
    counter++ 
 
    if(typeText.text()=="Let's get")//check the text and see if it has Let's get 
 
     typeText.append("<br/>");//if yes append br there 
 
    if(counter == str.length){ 
 
     clearInterval(SI); 
 
    } 
 

 
},100)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="typetext"></div>

+1

Hej, dziękuję za opinie, wszystkie te metody, które wszyscy zasugerowali, wydają się pasować do mojej sytuacji! Jeszcze raz dziękuję. – Troy

Powiązane problemy