Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   изменение значения классов в js (https://javascript.ru/forum/misc/11607-izmenenie-znacheniya-klassov-v-js.html)

igor' 02.09.2010 19:02

изменение значения классов в js
 
Доброго времени!
Как можно поменять значения класса class="eee"
В js я полный ноль, прошу пояснить как можно реализовать это, вот что я намудрил =D :
<h6>всплывающее окно подсказка </h6>
<div class="maicop">По крайнеё мере <span onmouseover="vspl_w()" >что бы я не написал<em class="eee">это не будет иметь ни какой разницы</em></span></div>
.maicop span{ display:inline; position:relative; border-bottom:1px dashed #69F; cursor: help;}
.maicop em.eee{ height:26px; overflow:hidden; position:absolute; right:-70px; top:-30px; width:100px; border:1px solid #6CF; font:normal 9px/9px Arial, Helvetica, sans-serif; display:none; background:#eee; padding:2px 5px 0;}

function vspl_w(){
	document.getElementByClassName('eee').style.display = 'block';
}

Sweet 02.09.2010 19:09

А ты в теме, что getElementsByClassName не кроссбраузерный метод? Он не работает в ие. Можно воспользоваться этим кодом

Sweet 02.09.2010 19:15

А вообще, во-первых, будь внимательнее. Нет метода getElementByClassName, есть метод getElementsByClassName. А во вторых, этот метод возвращает массив объектов. Т.е. работать будет следующий вариант:
document.getElementsByClassName('eee')[0].style.display = 'block';

igor' 02.09.2010 19:20

Sweet,
Спасибо за пояснение, все работает.
Но вот если к премеру, я хочу чтоб для всех классов 'eee' использовать,
а не ('eee')[0] это можно реализовать? чтоб не прописывать ('eee')[1], ('eee')[2] и т.д. ?

чтобы прописать как бы document.getElementsByClassName('eee')[all].style.display = 'block'; для всех, это возможно?

exec 02.09.2010 19:28

Метод getElementsByClassName работает не во всех браузерах, кроссбраузерная реализация тут http://javascript.ru/unsorted/top-10...lementsbyclass

Насчёт второго вопроса:

var elems = getElementsByClass( 'eee' ),
len = elems.length,
i;
for ( i = 0; i < len; i++ ) {
	elems[i].style.display = 'block';
}

igor' 02.09.2010 19:32

exec,
да, на счет кроссбраузерности, уже проверил ие не понимает-плохо =(
а на счет способа: 8) getElementsByClass() наверное не осилю изменить под себя.
А так спасибо за 2-ой вариант :)


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