Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2011, 16:46
Аспирант
Отправить личное сообщение для IIIgun Посмотреть профиль Найти все сообщения от IIIgun
 
Регистрация: 12.05.2011
Сообщений: 31

как изменить css свойсво нескольких елементов?
Есть проблема, имееться несколько тегов <a> с одинаковым идом, нужно изменить свойства ссылок при наступлении какого-то события, пытался изменить через document.getElementById(), меняет стиль только первого тега <a>, есть ли способ изменить стиль всех ссылок сразу?
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2011, 16:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,587

Сообщение от IIIgun
имееться несколько тегов <a> с одинаковым идом
Это уже неправильно. ИД должно быть уникально в пределах страницы...

Сообщение от IIIgun
есть ли способ изменить стиль всех ссылок сразу?
Да.
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2011, 18:00
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var a = document.getElementsByTagName('a');
for( var i in a ) {
   a[ i ].className = 'newcssstyle';
}
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2011, 18:27
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

devote,
не нужно так делать

<ul id="ul">
   <li>1</li>
   <li>2</li>
</ul>

<script>
var li = document.getElementById('ul').children, i = li.length;
while(i--) {
     li[i].style.color = 'red';
}
</script>
почему?

Последний раз редактировалось monolithed, 10.08.2011 в 18:36.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2011, 18:31
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от monolithed Посмотреть сообщение
devote,
не нужно так делать
То есть тут проход по массиву через for .. in большее зло, чем затирание className?
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2011, 18:34
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от e1f
То есть тут проход по массиву через for .. in большее зло, чем затирание className?
ну, я имел ввиду проблему в скопе, начиная с определения родителя и реализации
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2011, 02:16
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от monolithed
devote,
не нужно так делать
А в моем случае можно и нужно, ибо getElementsByTagName возвращает не массив а объект "NodeList". Да и для пустого массива можно и хуже не будет. Понимаю что там методы могут быть такие какие добавляет тот же match или еще кто. но тут не match а просто пустой массив. Сотню проектов делал все норм пашет, не вижу смыла городить что-то лишнее. Ну а если он навешает прототипов на Array то конечно так лучше не стоит, но сообщу сразу... Учитывая то что он не в курсе как менять класс сомневаюсь что в ближайшее время он будет работать с прототипами.

Видимо это из-за того, что я не сторонник вешать прототипы на стандарные объекты.. И я не понимаю тех кто это делает.

Последний раз редактировалось devote, 11.08.2011 в 02:39.
Ответить с цитированием
  #8 (permalink)  
Старый 11.08.2011, 03:10
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Дык даже если расширили прототип, hasOwnProperty ведь никто же не отменял
__________________
kobezzza
code monkey
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2011, 03:12
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

или модное enumerable:false
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2011, 04:13
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от melky
или модное enumerable:false
верно сказано, полностью согласен с тобой. Повесил прототип, позаботься его скрыть.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет текста в textarea Joshka Общие вопросы Javascript 4 04.05.2011 16:09
Подскажите как сделать меню на CSS если: greatilya (X)HTML/CSS 10 18.10.2009 20:26
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Как создать ассоциативный массив JS + CSS occlusion Общие вопросы Javascript 3 12.01.2009 09:19
Как передеть css файл родителя фрейму? Zeal Events/DOM/Window 9 21.10.2008 16:47