[JS] zamiana tekstu na stronie

w dziale Po godzinach
adas napisał(a):

No wiec mam taki kod:

<code>
linia1
linia2
linia3
linia4
...
</code>


I potrzebuję z tego zrobić coś takiego:

cośpoczątek + linia 1 + coś1 + linia 2 + coś2 + linia3 + coś3 + linia 4 + coś3 + itp. + cośkoniec


Linie 1,2,3 są zawsze a następne już nie zawsze. Czy byłby ktoś tak miły i przygotował takie proste coś w JS? wink

Zajec napisał(a):

Chyba dobrze zrozumiałem smile

function popraw(toFix) {
    var trimmed = toFix.replace(/^\s+|\s+$/g, '');
    var lista = trimmed.split(/\n/);

    var cosie = new Array("początek", "cos1", "cos2", "cos3");

    var res = '';
    for (var i = 0; i < lista.length; ++i) {
        if (i < cosie.length) res += cosie[i];
        else res += cosie[cosie.length - 1];
        res += ' + ';
        res += lista[i];
        res += ' + ';
    }

    res += 'koniec';
    return res;
}

var obiekt = document.getElementById('kod');
var tekst = obiekt.textContent;
alert(popraw(tekst));


Example: http://zajec.net/test/script4adas

adas napisał(a):

Dziękuję ci dobry człowieku. smile

Ale czy istnieje możliwość, aby takie coś działało dla code a nie dla id? Bo nie mam dostępu do zmiany id-a więc bym code wykorzystał wink Teraz jeszcze myślę jak zastąpić te <code>...</code> tym stworzonym tekstem (ale wymyślę, chyba, że mnie wyprzedzisz wink )

Zajec napisał(a):

Napisałeś, że chcesz zastąpić całe <code>...</code>, więc ten element ma zostać zupełnie wyrzucony, zgadza się?

var nowy = document.createTextNode(popraw(tekst));
obiekt.parentNode.insertBefore(nowy, obiekt);
obiekt.parentNode.removeChild(obiekt);

Jeżeli ten <code> jest jedynym na stronie, to możesz się dobrać przez
document.getElementsByTagName('code')[0];
Jeżeli jest ich więcej, musisz powoli się dobierać do mniej-więcej kolejnych elementów.

adas napisał(a):

Jako, że nie idzie mi dalej to znowu zadam pytanie.

Jak z tego co wyjdzie (coś+linia...) zrobić HTML? Znaczy linka dokładniej.

Powiedzmy, że mi wychodzi

<a href="jakiśtamlink">

I dodając
nazwa</a>
na stronie wyświetla mi się
<a href="jakiśtamlink">nazwa</a>
zamiast nazwa. Próbowałem tworzyć (document.createElement('a')) ale nie potrafiłem dodać nazwy linka (appendChild?) (no i dlatego pewnie się wyświetlał). Wogóle to mnie składnia przerasta i ilość wszystkich komend... sad Może wróce do Fortrana... wizard

Zajec napisał(a):

var odnosnik = document.createElement('a');
odnosnik.textContent = 'nazwa';
odnosnik.setAttribute('href', 'jakiśtamlink');