Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменить текст ссылки (https://javascript.ru/forum/misc/23242-izmenit-tekst-ssylki.html)

Romanich 17.11.2011 13:24

Изменить текст ссылки
 
Добрый день!
Я человек в javascript новый, поэтому просьба особа не пинать.
Имеем
<script language="JavaScript">
function OpenOne(){
if (document.getElementById("SelectOne").style.display == "none"){
	document.getElementById("SelectOne").style.display = "block";
	}
}
function CloseOne(){
if (document.getElementById("SelectOne").style.display == "block"){
	document.getElementById("SelectOne").style.display = "none";
	}
}
</script>

<a href="javascript:onclick=OpenOne();">Открыт </a>
<div id=SelectOne style="display: none;">
Какой то текст <a href="javascript:onclick=CloseOne();">закрыт ь</a>
</div>

Все работает. Но когда пытаюсь поменять текст в ссылке, то блок у меня воспринимается всегда как 'none'. Делаю следующее
Вместо 'Открыть и закрыть' ставлю код:
<script language="JavaScript">
if (document.getElementById("SelectOne").style.display == "none"){
	document.write('Открыть');
} else {
	document.write('Закрыть');
}
</script>

и он естественно не срабатывает. Как сделать?
P.S. Еще вопрос. Не нашел в js оператора elseif. Есть ли он вообще?

ksa 17.11.2011 13:38

Цитата:

Сообщение от Romanich
Не нашел в js оператора elseif. Есть ли он вообще?

Он от тебя спрятался... :D
http://javascript.ru/if

ksa 17.11.2011 13:44

Цитата:

Сообщение от Romanich
пытаюсь поменять текст в ссылке

Так текст в ссылке не меняют...

Как вариант...

<script type="text/javascript">
function Go(Obj) {
	Obj.innerHTML=(Obj.innerHTML=='Открыть')? 'Закрыть': 'Открыть';
}
</script>
<a href='#' onclick="Go(this); return false;">Открыть</a>

Romanich 17.11.2011 13:44

Понял. Спасибо.
А саму ссылку можно как-то поменять, чтобы вызвать функцию CloseOne() или OpenOne()

ksa 17.11.2011 13:44

Цитата:

Сообщение от Romanich
А по-первому вопросу?

См. выше... :)

Romanich 17.11.2011 13:50

Цитата:

Сообщение от ksa (Сообщение 137143)
См. выше... :)

А саму ссылку можно как-то поменять, чтобы вызвать функцию CloseOne() или OpenOne()
Вроде я туплю...

ksa 17.11.2011 13:53

Romanich, теперь и я не понял что тебе нужно... :(

ksa 17.11.2011 13:59

Romanich, то мобуть такое?

<style type="text/css">
#text {
	display: none;
}
</style>
<script type="text/javascript">
function Open() {
	document.getElementById('open').style.display='none';
	document.getElementById('text').style.display='block';
}
function Close() {
	document.getElementById('open').style.display='block';
	document.getElementById('text').style.display='none';
}
</script>
<p id='open'>
	<a href='#' onclick="Open();">Открыть?</a>
</p>
<div id='text'>
	<p>
		Какой то текст <a href='#' onclick="Close();">закрыть</a>
	</p>
</div>

Romanich 17.11.2011 14:04

Извиняюсь, что не внятно описал. С утра голова раскалывается.
Есть две функции, одна открывает блок OpenOne(), другая скрывает CloseOne(). Соответственно, нужен линк клик по которому вызывает одну или вторую функцию.
Линк "Открыть" вызывает функцию OpenOne() и блок открывается. Одновременно линк "открыть" меняется на линк "закрыть", при клике по которому вызывается функция CloseOne()

ksa 17.11.2011 14:11

Цитата:

Сообщение от Romanich
С утра голова раскалывается.

Бухал чёле? :lol:

Если все "делает" только один элемент - 2 функции тут не нужны. :)

<style type="text/css">
#text {
	display: none;
}
</style>
<script type="text/javascript">
function Go(Obj) {
	if (Obj.innerHTML=='Открыть') {
		document.getElementById('text').style.display='block';
		Obj.innerHTML='Закрыть';
	} else {
		document.getElementById('text').style.display='none';
		Obj.innerHTML='Открыть';
	};
}
</script>
<p>
	<a href='#' onclick="Go(this);">Открыть</a>
</p>
<div id='text'>
	<p>Какой то текст</p>
</div>


Часовой пояс GMT +3, время: 13:25.