скрипт за "показване" и "скриване" на текст

nortrant

Well-Known Member
здравейте,
имам нужда от най-елементарното изпълнение на следното: в една страница поставям текст и на всяка дума да може да се кликва - когато се кликва тя се замества с друга (която съм въвел по-рано естествено) - когато се кликне още веднъж се показва другата (т.е. всички думи на които може да се кликва ще имат още една версия която ще се показва след кликване).

не знам дали обясних достатъчно ясно :D
 
Код:
preg_replace('\овца\', '<а href="javascript:myFunctionWithAJAXWordLoading();">овца<\/а>', $stringVarSiteHTML);
И след това малко мазало правиш с JS да сменя думите.
 
нужен ли му е сървър на това? аз се надявах да има нещо което да си го стартирам през браузъра... :(
 
php?

Начини много, ето ти две идеи:
1) Два масива с думите; при onclick заменяш елемент Х от масив 1 с елемент Х от масив 2;
2) Всяка дума/фраза ти е в спан, в който имаш скрит елемент em; При onclick събитие сменяш показваш em елемента и криеш дургото;
 
Да с JS става интересно.
Код:
<p>Quickly Search The Web!</p>
<script type="text/javascript">
var search = new Array("Search");
var replace1 = new Array("Replace1");
var paragraphs = document.getElementsByTagName('p');
var pieces;
var modElm;
var txtElm;
for(var i = 0; i < paragraphs.length; i++){
    for(var x = 0; x < search.length; x++){
        pieces = paragraphs[i].firstChild.nodeValue.split(search[x]);
        paragraphs[i].firstChild.nodeValue = "";
        for(var z = 0; z < pieces.length; z++){
            txtElm = document.createTextNode(pieces[z]);
            paragraphs[i].appendChild(txtElm);
            if(z < (pieces.length - 1)){
                modElm = document.createElement("span");
                txtElm = document.createTextNode(search[x]);
                paragraphs[i].appendChild(modElm);
                modElm.appendChild(txtElm);
                modElm.index = x;
                modElm.onclick = function(){
                    this.removeChild(this.firstChild);
                    txtElm = document.createTextNode(replace1[this.index]);
                    this.appendChild(txtElm);
                }
            }
        }
    }
}
</script>
Това е както AMitrev предложи.
 
Да, и така сигурно ще стане. Но кода на NovaPS е два реда
Първо е добре да се сравнят двете неща.
Начини има много на брой. На мен ми хареса развитието на темата и сътворих това което е самостоятелно, а не променяш html с допълнително тегло.
 
Първо е добре да се сравнят двете неща.
Начини има много на брой. На мен ми хареса развитието на темата и сътворих това което е самостоятелно, а не променяш html с допълнително тегло.

Добре, но не отговаря на едно ключово условие:
когато се кликва тя се замества с друга - когато се кликне още веднъж се показва другаТА (оригинала)

https://jsfiddle.net/drkkbusa/ ок и аз да се разпиша с JQuery

И в това има капацитет, въпреки, че точно в моя случай е неудобно заради това, че най-вероятно е пригодено за сменянето на една дума. А аз скрипта ще го използвам за повече - примерно цяла страница с текст и само на определени думи поставям дубликат.
 

Горе