Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.03.2011, 19:36
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Как изменить параметр класса с помощью JS?
Все перерыл, так и не смог ничего найти.

Есть такой кусок:
<head>

<style>
.class1 {
position: absolute
}
</style>

<script>
document.getElementById('class1').style.position = relative
</script>

</head>

<body>

<div class="class1">1</div>
<div class="class1">2</div>

</body>

В общем, скрипт должен менять параметр класса.
getElementById работает только с идентификатором, а мне нужно с классом.
Ответить с цитированием
  #2 (permalink)  
Старый 07.03.2011, 19:43
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Используйте getElementsByClassName, но это не кроссбраузерный метод, используйте эту реализацию.
<head>

<style>
.class1 {
position: absolute
}
</style>

<script>
window.onload = function(){
    document.getElementsByClassName('class1')[0].style.position = 'relative';
}
</script>

</head>

<body>

<div class="class1">1</div>
<div class="class1">2</div>

</body>
Ответить с цитированием
  #3 (permalink)  
Старый 07.03.2011, 19:56
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Спасибо! Мне это нужно для всего кроме Эксплорера.

Только к ней еще нужно цикл прикрутить, чтобы все элементы по очереди перебирала. А как узнать кол-во элементов?

Не очень понял смысл getElementsByClass(). Что она выдает, список найденных элементов? В каком виде?
Ответить с цитированием
  #4 (permalink)  
Старый 07.03.2011, 20:16
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Возвращает массив найденных элементов. Вот пример всё пояснит:
<head>

<style>
.class1 {
position: absolute
}
</style>

<script>
window.onload = function(){
    var elems = document.getElementsByClassName('class1');
    for(i=0; i < elems.length; i++) {
        elems[i].style.position = 'relative';
        elems[i].innerHTML = 'Индекс:' + i;
    }
}
</script>

</head>

<body>

<div class="class1">1</div>
<div class="class1">2</div>

</body>
Ответить с цитированием
  #5 (permalink)  
Старый 07.03.2011, 20:25
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Я в принципе сделал цикл так:
for (i = 0; (document.getElementsByClassName('class1')[i] != undefined); i++) {
				document.getElementsByClassName('class1')[i].style.position = 'relative';
			}

Это нормально или слишком по рабоче-крестьянски?
Ответить с цитированием
  #6 (permalink)  
Старый 07.03.2011, 20:52
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Shitbox2, зачем так то?
в крайнем случае если вам нужна проверка на undefined:
var elems = document.getElementsByClassName('class1');
for (i = 0; i < elems.length; i++) {
    if (elems[i] != undefined) {
        elems[i].style.position = 'relative';
        elems[i].innerHTML = 'Индекс:' + i;
    }
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16
С помощью JS добавить к ссылкам картинку в CSS wlad2 Элементы интерфейса 7 16.10.2010 23:44
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 20:43