0

Хотелось бы замутить это с помощью функции javascript. Можно вообще обратиться к нескольким элементам?

4
  • 2
    jQuery: $(".className").css('display', 'none'); // or $(".className").hide(); each, я так понимаю для наглядности? на счёт префиксного инкремента: var a = [1,2,3]; for( var i=0; i<a.length; ) { console.log( a[++i] ) } for( var i=0; i<a.length; ) { console.log( a[i++] ) } вот здесь будет заметна разница. @AlexWindHope, а с вашим кодом всё в порядке Если быть ещё более максимально дотошным, то цикл for сам по себе излишен, т.к. легко заменяется циклом while
    – Spectre
    24 мая 2012 в 17:59
  • я не только про js, я про языки программирования в целом, ведь for всего лиш более удобная "обёртка" над циклом while, т.е. цикл while более общее понятие чем цикл for, хотя с таким успехом можно прийти к выводу, что goto, т.е. его ассемблерные истоки - это панацея -------------- и мне кажется это уже офтоп
    – Spectre
    24 мая 2012 в 18:48
  • Мда, это мне показалось :-)
    – karmadro4
    24 мая 2012 в 19:27
  • @ustal мой ответ это то что вы хотели?
    – Rules
    27 мая 2012 в 8:28

2 ответа 2

2

Перебирать элементы по классу и вставлять им инлайн стиль - по-индусски.

var stylesheet = document.styleSheets[0];
stylesheet.insertRule( 'div.undisplayed { display: none; }', stylesheet.cssRules.length );
4
  • Поскольку я облажался с инкрементом, в качестве епитимьи предлагаю кошерное решение.
    – karmadro4
    24 мая 2012 в 19:54
  • 1
    @Rules, поправил, благодарю. Хотя не думаю, что стилистико-грамматическая ошибка тянет не облажался, мы же не на форуме филологов. Кстати, регулярка не получилась. Читайте сюда.
    – karmadro4
    27 мая 2012 в 16:56
  • Если бы еще хоть одно условие было - уже бы так не прокатило (ширина < 200 etc). Но задача решена и, кстати, я впервые такое вижу (позор на мою седину), потому плюс)
    – Sh4dow
    5 июн 2012 в 16:27
  • @alex_90 > Да @karmadro4 чмо, даже свои ошибки признать не может.. А вы зачем здесь нарисовались? Вы же не разбираетесь в этой теме и не поняли ни слова из написанного. Давайте конкретную критику, а кукарекать прошу в другое место.
    – karmadro4
    5 июн 2012 в 16:42
-3
<html>
<head>
<title>brg</title>
</head>
<body>
<div class="divobj someclass" style="left: 0px;">A</div>
<div class="divobj otherclass" style="left: 30px;">B</div>
<div style="left: 60px;">C</div>
<div class="divobj" style="left: 90px;">D</div>
<style>
.divobj{
 position: absolute;
 background-color: #FF0000;
 width: 30px;
 height: 30px;
 top: 0px;
}
</style>
<script>
window.onload=function(){
function getElementsByClassName(where, className){ //Функция работает во всех 
                //браузерах а document.getElementsByClassName везде кроме IE<9
   var allElements = where.getElementsByTagName("*"); //Получаем все тэги
   var elements = [];
   for(var i=0;i<allElements.length;i++){
      if(new RegExp(""+className,"g").test(allElements[i].className)){ // Отсеиваем
                                                                     //по className
         elements.push(allElements[i]);
      }
   }
   return elements; // Возвращяем результат
}
objs=getElementsByClassName(document,"divobj"); // Получаем все обьекты с классом some
for(var i=0;i<objs.length;i++){
   obj=objs[i];
   if(obj.tagName=="DIV"){ // Если дейстаительно это div то
      obj.style.display = "none"; // Присваеваем обьекту свойство
   }  
}
}
</script>
</body>
</html>

P.S: лучшая альтернатива предложена @Котик'ом: ": Функции для поиска элементов по классам и тегам

P.P.S оставлю свой ответ если кому интересно и НЕ МИНУСУЙТЕ! МОЙ КОД ПРЕКРАСНО РАБОТАЕТ!

P.P.P.S обновил код специально для @karmadro4

13
  • 2
    //Функция неправильно работает во всех браузерах... Должно быть так ;-)
    – karmadro4
    26 мая 2012 в 16:25
  • 5
    @Rules Даже если и работает, то все равно коммент @karmadro4 забавный :) ![][1] [1]: i1195.photobucket.com/albums/aa394/TSGIGOR/FUNNY/7.gif 27 мая 2012 в 8:30
  • 1
    @Rules Потому что концептуально правильный ответ уже дал @karmadro4, а следовать принципу [DRY][1] - это обычно не самая плохая идея :) [1]: en.wikipedia.org/wiki/Don't_repeat_yourself 27 мая 2012 в 9:07
  • 4
    @Rules, чтож вы так кричите-то... > МОЙ КОД ПРЕКРАСНО РАБОТАЕТ! Неправда же, это только говорит о неправильном тестировании. Пари?
    – karmadro4
    27 мая 2012 в 10:23
  • 4
    Какие будут ставки? Располагаю 1008 очками и не боюсь проиграть.
    – karmadro4
    27 мая 2012 в 13:06

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.