Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   getElementsByClassName (https://javascript.ru/forum/events/8731-getelementsbyclassname.html)

Kolyaj 15.04.2010 11:56

Цитата:

Сообщение от denisok82
можно ли создавать такие глобальные переменные или нет?

А почему нет?

denisok82 15.04.2010 17:31

Kolyaj,
Потому что почему-то не работает, если их объявить глобально. Объясните пожалуйста, если не сложно, что не так.

Kolyaj 15.04.2010 17:37

Потому что на момент объявления переменных этих узлов ещё нет в DOM-дереве.

heckfy 16.01.2011 05:26

еще один вариант

if ( typeof( document.getElementsByClassName ) != "function" )
document.getElementsByClassName = function( classname, tagname ) {
var tags = tagname ? document.getElementsByTagName( tagname ) :
( document.all ? document.all : document.getElementsByTagName( "*" ) );
console.log( classname, tagname, typeof( tags ) );
var e;
var r = [];
for ( var i = 0; i < tags.length; i++ ) {
e = tags[i].className;
var s = e.split( ' ' ).some( function( el, ind, ar ) { return (el == classname); } );
if ( typeof( e ) == 'string' && e && s )
r.push( tags[i] );
}
return r;
};

avts 16.02.2012 12:03

пожалуйста, разъясните начинающему конструкцию result = [], i,j в коде. Это определение пустого массива? А что такое i,j здесь?

devote 16.02.2012 12:38

Цитата:

Сообщение от avts (Сообщение 157826)
пожалуйста, разъясните начинающему конструкцию result = [], i,j в коде. Это определение пустого массива? А что такое i,j здесь?

Обычно перед result = [], i,j ставят var, тоесть:
var result = [], i,j
Определяет переменные внутри текущего scope

JimmyKeeper_11 21.04.2013 22:50

Манипуляция стилями div'ов через JS
 
Подскажите, пожалуйста, как я могу изменять стили определенных классов, через обращение к другим по JS скрипту?

с участием 2х элементов можно было бы ограничится тривиальным псевдоклассом :hover, но суть такая:
Допустим у нас на сайте 3 элемента и, соответственно, 3 класса к ним:
<div class="icon"></div>
<div class="hint1"></div>
<div class="hint2"></div>

в стиле .hint2 {display:none;}

При наведении на div "icon" к "hint1" должно присваиваться display:none, а у "hint2" это значение обнулять display:inherit например.

Другими словами, при наведении на красный кубик в окошке появляется надпись "это красный кубик", а при наведении на зелёный кубик - "это зелёный кубик".
т.к. в js я не силён, а знаю только html|css3 (на хорошем уровне)
Своими силами пытался найти ответ, наткнулся на getElementsByClassName но толком не могу разобраться как манипулировать стилями..

danik.js 21.04.2013 23:01

<style>
.icon{
    width:50px;
    height:50px;
    background:red;
}
.hint1{
    display:none;
}
.icon:hover ~ .hint1{
    display:block;
}
.icon:hover ~ .hint2{
    display:none;
}
</style>
<div class="icon"></div> 
<div class="hint1">hint1</div> 
<div class="hint2">hint2</div>


Так чтоли?

devote 22.04.2013 00:36

http://javascript.ru/forum/project/3...ka-na-css.html

Vic92eden 28.09.2015 09:55

<div class='featured-view'></div>
<div class='latest-view'></div>
<div class='topten-view'></div>

<script type="text/javascript">
function switchDIV() {
var Elements1 = document.getElementsByClassName('featured-view').innerHTML;
Elements2 = document.getElementsByClassName('topten-view').innerHTML;
Elements3 = '';
Elements1 = Elements3;
Elements2 = Elements1;
Elements3 = Elements2;
}
</script>

Подскажите пожалуйста в чем проблема!!! Нужно поменять местами 1 и 3й элементы


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