Jump to content
  • 0

Показать/убрать скрытый текст


ivnitskiy
 Share

Question

<script language="JavaScript1.2">
var ns6=document.getElementById&&!document.all?1:0
var head="display:''"
var folder=''
function expandit(curobj){
folder=ns6?curobj.nextSibling.nextSibling.style:document.all[curobj.sourceIndex+1].style
if (folder.display=="none")
folder.display=""
else
folder.display="none"
}
</script>

<font onClick="expandit(this)">Посмотреть скрытый текст</font>
<span style="display:none">
<br>
Скрытый текст
<br>
<font onClick="ЧТО_ЗДЕСЬ_НАПИСАТЬ?">Убрать скрытый текст</font>
</span>

(Посмотреть)

Подскажите, как сделать так, чтобы при нажатии на "Убрать скрытый текст" убирался скрытый текст?

Edited by ivnitskiy
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

onclick="this.innerHTML=' ' "

а обратно как?) Это как в той подписи про DROP TABLE

ivnitskiy, нужно проставить нужным элементам ID и далее с помощью document.getElementById("") легко ссылаться на них.

Кстати у вас на странице проблемы с кодировкой и вот это…

language="JavaScript1.2

надо убирать.

Edited by hf3
Link to comment
Share on other sites

  • 0
onclick="this.innerHTML=' ' "

а обратно как?) Это как в той подписи про DROP TABLE

Да ладно тебе..хыы, обратно можно так...

<span onclick="
if(this.innerHTML=='Текст')this.innerHTML=' '
else this.innerHTML='Текст'
">Текст<span>

Но только было бы неплохо как-то пометить спан в плане блока, высоты и цвета, чтобы потом можно было его найти хоть без текста на экране ;)

Link to comment
Share on other sites

  • 0
onclick="this.innerHTML=' ' "

а обратно как?) Это как в той подписи про DROP TABLE

ivnitskiy, нужно проставить нужным элементам ID и далее с помощью document.getElementById("") легко ссылаться на них.

Кстати у вас на странице проблемы с кодировкой и вот это…

language="JavaScript1.2

надо убирать.

Спасибо, я уверен что так и надо сделать, только я в этом ничего не понимаю ;) Можно подробнее?

1. Я засовываю все, что надо скрыть в <div id="hide">

2. После слова
onClick=
пишу
"document.getElementById("hide")"
?

Понимаю что не так (потому что так не работает). А как надо?

Link to comment
Share on other sites

  • 0
Спасибо, я уверен что так и надо сделать, только я в этом ничего не понимаю ;) Можно подробнее?

1. Я засовываю все, что надо скрыть в <div id="hide">

2. После слова
onClick=
пишу
"document.getElementById("hide")"
?

Понимаю что не так (потому что так не работает). А как надо?

Да нее, это ты какую то ерунду пишешь.

Просто на странице например нужному элементу ставь ID

<span id="span">Текст<span>

Далее в JS уже пиши, как бы ссылайся на его ID сначала, а потом с ним уже работай, как хочешь.

	var span = document.getElementById('span')
span.onclick = function(){
if(this.innerHTML=='Текст')this.innerHTML=' '
else this.innerHTML='Текст'
}

Link to comment
Share on other sites

  • 0

Я все понял. Надо делать так:

<script type="text/javascript">
function showhide(id){
var e = document.getElementById(id);
if( e ) e.style.display = e.style.display ? "" : "none";
}
</script>

<a href="#" onclick="showhide('mytext');return false;">Посмотреть скрытый текст</a>
<div id="mytext" style="display:none">
<br />
<br />
<i>«Скрытый текст»</i>
<br>
<a href="#" onclick="showhide('mytext');return false;">Убрать скрытый текст</a>
</div>

Link to comment
Share on other sites

  • 0

А display может принимать пустое значение?

Я делаю так обычно:

if (e.style.display == 'block')  e.style.display='none'
else e.style.display = 'block';

(не помню, в яваскрипте нужна чтоль точка с запятой перед else?)

Edited by Int
Link to comment
Share on other sites

  • 0
Я все понял. Надо делать так:

<script type="text/javascript">
function showhide(id){
var e = document.getElementById(id);
if( e ) e.style.display = e.style.display ? "" : "none";
}
</script>

<a href="#" onclick="showhide('mytext');return false;">Посмотреть скрытый текст</a>
<div id="mytext" style="display:none">
<br />
<br />
<i>«Скрытый текст»</i>
<br>
<a href="#" onclick="showhide('mytext');return false;">Убрать скрытый текст</a>
</div>

Отлично, только есть вопрос:

if( e ) e.style.display = e.style.display ? "" : "none"; - А что означает эта строчка, дословно?

А display может принимать пустое значение?

Я делаю так обычно:

if (e.style.display == 'block')  e.style.display='none'
else e.style.display = 'block';

(не помню, в яваскрипте нужна чтоль точка с запятой перед else?)

Помойму необязательно перед else точка с запятой. А вообще хотелось-бы узнать поточнее ответ у кого нибудь.

И да, выходит, что display может принимать пустое значение?

Link to comment
Share on other sites

  • 0
И да, выходит, что display может принимать пустое значение?

Не пустое, а как браузер посчитает по дефольту.

Я для себя решил давно так - на класс прописываю дисплей:ноне, а по клику добавляю или удаляю этот класс, можно совершенно любому элементу.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy