Перейти к содержимому


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 105 0 тем, 10 сообщений, 7 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 81 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #5

    BLIK
    Очков активности: 36 Вне конкурса за определение пользователя месяца

  • Фотография Developer
    #6

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

  • Фотография AnnaYa
    #7

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография TimurR
    #8

    TimurR
    Очков активности: 31.5 Вне конкурса за определение пользователя месяца

  • Фотография Алексей111
    #9

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография Игорь Ку
    #10

    Игорь Ку (dudesday.ru)
    Очков активности: 24 1 тема, 5 сообщений, 2 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 24.09.2018
Топ 5 участников по репутации


Скрипт работает только на одном блоке

#1 hoax

hoax
  • Неактивные
  • 24 сообщений
  • Репутация: 1
0

Отправлено 21 September 2012 - 21:41

Всем привет, вот есть скрипт

var a = document.getElementById('anny');
var s = document.getElementById('show_block);
a.onclick = function() {
show(s);
}
function show(el) {
el.style.display=el.style.display=='block'? 'none' : 'block'
}

Т.е. у меня на странице есть несколько таких id - a,s. Но работает скрипт только в первом блоке (в котором есть ПЕРВИЧНЫЕ a, s), остальные идентичные ему (тоже блоки с теми же a,s) не пашут, почему?

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 21 September 2012 - 22:39

ID уникализирует элемент страницы. Проще говоря, ID должен встречаться на странице только 1 раз, т.е. не может быть на странице больше одного элемента с идентификатором a - в таком случае будет работать только первый идентификатор.
  • 0


#3 hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 22 September 2012 - 18:42


var announcement = document.getElementsByClassName('announcement');
var showAnnounce = document.getElementsByClassName('show_announcement');

в html заменил на div class=""

в стилях тоже, что-то не пашет

  • 0

#4 yury

yury
  • Пользователь
  • 642 сообщений
  • Репутация: 188

Отправлено 22 September 2012 - 19:07

hoax,
* getElementsByClassName не работает в ИЕ
* а там, где работает, возвращает массив элементов с заданным классом.
Поэтому, если хочется, чтобы ваша функция показывала/скрывала то что надо, либо дальше модернизируйте ее либо пользуйтесь чем-то вроде такого:
<html>
<head>
<title>Show/Hide</title>
<script type="text/javascript">
function show_hide (id) {
if (document.getElementById("hidden_" + id).style.display == "none") {
	document.getElementById("hidden_" + id).style.display = "block";
	document.getElementById("lnk_" + id).innerHTML = "Скрыть";
}
else {
	document.getElementById("hidden_" + id).style.display = "none";
	document.getElementById("lnk_" + id).innerHTML = "Показать";
}
}
</script>
</head>
<body>
<a href="javascript:show_hide('1');" id="lnk_1">Показать</a>
<div id="hidden_1" style="display:none">
Скрытый текст
Скрытый текст
Скрытый текст
</div>
<br>
<a href="javascript:show_hide('2');" id="lnk_2">Показать</a>
<div id="hidden_2" style="display:none">
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
</div>
</body>
</html>

  • 0

#5 hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 22 September 2012 - 20:24

Вот по типо этого, помогите додумать)

есть несколько блоков a1,a2,a3,a4,a5... нужно чтобы при нажатии на них вызывался блок h_a1

сделал следующее


Надо как-то сделать, чтобы x был больше нуля, т.е. было так id="a1, a2, a3....." == id="ax" Т.е. чтобы х был как бы дополнением к id.

function ann() {
var x;
var block = document.getElementById('ann');
var a = block.getElementById('a' + x);
var h_a = document.getElementById('h_a1');
x = x>0;
if(a) show(h_a);
function show(el) {
el.onclick = function() {
this.style.display=this.style.display? '':'block';
}
}
}

  • 0

#6 hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 22 September 2012 - 21:29

наверно непонятно написал) имею ввиду чтобы x был числом, которые прибавляется к id, т.е. id="a1", id="a2" и т.д. было идентично id== ax (где х - любое число)
  • 0

#7 hoax

hoax
    Topic Starter
  • Неактивные
  • 24 сообщений
  • Репутация: 1

Отправлено 22 September 2012 - 21:52

хотя наверное так оставлю не могу додумать, Ваш код немного сократил, спасибо

function ann(x) {
var h = document.getElementById('h_a' + x);
h.style.display=h.style.display? '' : 'block';
}

  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru