как изменить css свойсво нескольких елементов?
Есть проблема, имееться несколько тегов <a> с одинаковым идом, нужно изменить свойства ссылок при наступлении какого-то события, пытался изменить через document.getElementById(), меняет стиль только первого тега <a>, есть ли способ изменить стиль всех ссылок сразу?
|
Цитата:
Цитата:
|
var a = document.getElementsByTagName('a');
for( var i in a ) {
a[ i ].className = 'newcssstyle';
}
|
devote,
не нужно так делать :nono:
<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>
почему? |
Цитата:
|
Цитата:
|
Цитата:
Видимо это из-за того, что я не сторонник вешать прототипы на стандарные объекты.. И я не понимаю тех кто это делает. |
Дык даже если расширили прототип, hasOwnProperty ведь никто же не отменял
|
или модное enumerable:false
|
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
ну при желании можно как многие говорят, все опять же от ситуации зависит:
for( var i = 0; elems[ i ]; i++ ) { ... }
|
можно и
Array.prototype.forEach.call( myNodeList, function(element, index){...} )
а фор иач будет добавляться в прототип для поддержки старых браузеров как это.. фасад ? :) |
Цитата:
|
Цитата:
так реализуют же или какая-то другая причина? |
Ой, нет, я обманул. Это стандартные методы массивов нельзя вызвать в контексте DOM-объектов, а кастомные можно.
|
| Часовой пояс GMT +3, время: 07:28. |