000 js/showhide..php

Show/Hide Next Object

Функция на JS, которая прячет/показывает следующий за объектом вызывающим её, объект (группу объектов), но не голый текст. 

1. Валидный (DOM) код 1, со сменой текста ссылки:

Sample hide
Вставлять между тегами <HEAD> и </HEAD> документа или создать файл script.js и включить строку: <script src="script.js" type="text/javascript"></script> Код JavaScript. /* Проверочка на лишние текст и переносы каретки */ function nextNode(e) { return ((e && e.nodeType != 1) ? nextNode(e = e.nextSibling) : e); } function NextObj(nObj,nText){ tObj=nextNode(nObj.nextSibling); with(nObj) if (innerHTML==nText+' show') {innerHTML=nText+' hide'; tObj.style.display='block';} else {innerHTML=nText+' show'; tObj.style.display='none';} } Ссылка-переключатель, вставлять непосредственно перед объектом <A href="#" onclick="NextObj(this, 'Sample'); return false;">Sample hide</A>

2. Валидный (DOM) код 2, без смены текста ссылки:

Sample show/hide
Код JavaScript. /* Проверочка на лишние текст и переносы каретки */ function nextNode(e) { return ((e && e.nodeType != 1) ? nextNode(e = e.nextSibling) : e); } function NextObj2(nObj){ tObj=nextNode(nObj.nextSibling); with(tObj.style) display = (display != 'none') ? 'none':'block'; } Ссылка-переключатель, вставлять непосредственно перед объектом <A href="#" onclick="NextObj2(this); return false;">Sample hide</A>

3. Старый, не DOM код:

Sample hide
Код JavaScript. function NextObjX(nObj,nText){ tObj=document.all[nObj.sourceIndex+1].style; with(nObj) if (innerText==nText+' show') {innerText=nText+' hide'; tObj.display='block';} else {innerText=nText+' show'; tObj.display='none';} } Работает даже изнутри конструкции (т.е. ссылка переключатель вложена в другой объект) <H3>Header open <A href="#" onclick="NextObj2(this); return false;">Sample hide</A> Header close</H3>

Проверочка на лишние текст и переносы каретки сделана благодаря forum.htmlbook.ru

Обсуждение и "версии" в сообществе ru_webdev.livejournal.com

Особая благодарность LJ-user dasbot и LJ-user harisov