1. Куча / Говнокод #4645

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <p id="entrance">
                Нашли или ...
    </p>
    
    <p id="entrance" style="background: #fff; padding: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; -webkit-box-shadow: 0 0 5px #aaa">
    	Дорогие пользователи
    </p>

    Решил я написать скрипт для GreaseMonkey, который убирает сообщение "Дорогие пользователи, "
    И вот что обнаружил: в коде есть два одинаковых айдишника id="entrance".

    Используется стиль p#entrance.

    Если надо использовать стили в нескольких элементах, используй классы.

    А разные айдишники оставь для джаваскрипта,
    а то не выбрать определенный элемент с помощью document.getElementById.

    В крайнем случае используй атрибут name. Для него есть метод document.getElementsByName

    Запостил: Oleg_quadro, 16 Ноября 2010

    Комментарии (42) RSS

    • В стилях специально не копался, это Firebug выдал.
      Ответить
    • А где -moz-box-shadow? Дискриминация =)
      Ответить
    • Кэп, нету name у P.
      Ответить
      • а что мешает его добавить?
        Ответить
        • w3c
          Ответить
          • что тогда вместо него?
            Ответить
            • атрибут name есть только у полей формы и ссылки. А в xhtml 1.1 его и вообще нет:)
              если хочется обозначить группу P -- используйте класс. На него можно повесится селектором и в css и в jquery.
              Ответить
              • спасибо. ждём браузерной реализации getElementsByClass
                Ответить
                • зачем?
                  чем плох $("boo.class") ?
                  Ответить
                  • просто думаю браузерная реализация будет быстрее.
                    Ответить
                    • будет. Но только я не верю, что поиск элемента по классу в современном браузере может быть боттл-неком
                      Ответить
                      • дык, на простой страничке не будет.
                        А если там какой-нить календарь: 3 года назад, 3 года вперёд, то там всё и выплывает.
                        Ответить
                  • быдло-жкуерями плох
                    nodelist = element.getElementByClassName(string) /* же! */
                    Ответить
                    • >>же!
                      IE не поймет
                      Ответить
                      • не только он. тут getElementsByClassName записана без буквы s,
                        после Element
                        Ответить
                      • IE и прочую эзотерику надо окостылировать
                        Ответить
                        • ...что и делает "быдложуквери". )

                          на жабьем скрипте и так писать противно, еще не хватает вручную обходить все баги браузеров)
                          Ответить
                          • нет, быдло-жкуери идут своим особым путём, который с виду похож на querySelectorAll
                            Ответить
                            • блин, ну нельзя же убить всех пользователей с ослом?!
                              Ответить
                              • ослоцид это возможно и хорошо, но причем тут это?
                                Ответить
                                • Потому что querySelectorAll не работал, по крайней мере в семрке.

                                  зы: осел -- это IE. Так-то!
                                  Ответить
                                  • причем здесь замена драфтного getElementsByClassName на не менее драфтное расширение?
                                    Ответить
                                    • Я видимо Вас не понимаю)
                                      жэквери хорош тем, что в нем я могу получить все элементы по самому извращенному селектору не парясь о своместимости.
                                      Мой код будет работать в любом, выпущенном за последние 5 лет, браузере. Мне достаточно только подключить 5 килобайт кода.

                                      Конечно было бы здорово, если б такая возможность была у любого HTMLDom, но ее, увы, нет. Приходится юзать костыль (как это часто бывает в веб-разработках).
                                      Ответить
                                      • > все элементы по самому извращенному селектору
                                        даже если нужен селектор 'body'? :)

                                        > 5 килобайт кода
                                        ORLY? таки 5? не 4,9?
                                        Ответить
                                        • >>даже если нужен селектор 'body'
                                          Это врядли)

                                          Я не предлагаю везде и всегда юзать JQuery (не поверите -- я умею писать на чистом JS), но иногда JQuery правда помогает.

                                          Это конечно не оправдывает типовой jquery говнокод, где 400 раз создается одна и та же функция, потому что ее не вынесли в переменную, а анонимно навешивают на click итд..

                                          >>ORLY? таки 5? не 4,9?
                                          Это Вы за размер сайта боритесь?)
                                          Ответить
                            • OFFTOP: Вы мне чем-то веб-килла напоминаете)

                              толи аватарой толи стилем беседы
                              Ответить
    • Впрочем, щас подумал:
      Если не обращаться с помощью джаваскрипта к определенным элементам, может и id вместо класса покатит.
      Ответить
    • Ладно, в этом конкретном случае не говнокод)). Если не обращаемся к элементам с помощью javascript.
      Ответить
      • Вообще-то id должен быть уникален, чего нет в примере.
        Ответить

    Добавить комментарий