ЙажаСценарий / Говнокод #12253 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
if(navigator.appName == "Microsoft Internet Explorer") {
	for(var i=0;i<$('.product_documents').length;i++)  if( ( (firstLaunch_onChangeDocs) && ($('.product_documents')[i].selectedIndex==0)) || (!firstLaunch_onChangeDocs) )
	{
	  document.getElementById($('.product_documents')[i].id).innerHTML = '';
	  document.getElementById($('.product_documents')[i].id).outerHTML = document.getElementById($('.product_documents')[i].id).outerHTML.replace("</SELECT>", jsInternalDocuments + '</select>')
	}
  } else
	for(var i=0;i<$('.product_documents').length;i++)  if( ( (firstLaunch_onChangeDocs) && ($('.product_documents')[i].selectedIndex==0)) || (!firstLaunch_onChangeDocs) )
	  $('.product_documents')[i].innerHTML = jsInternalDocuments;

Очень альтернативная техника использования jquery.

Запостил: clauclauclau clauclauclau, (Updated )

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

  • Пять поисков элементов с классом product_documents за каждую итерацию для IE и три - для остальных.
    O(N^2) на пустом месте - это волшебно.
    Ответить
  • >document.getElementById($('.product_doc uments')[i].id).innerHTML = '';
    За это вырезать всю семь до 5 колена. Это же просто не возможно.
    Ответить
  • Юмористическое программирование? Трудно поверить, что такое писали всерьёз.
    Ответить
    • Увы, всерьез. Это b2b сайт крупного производителя промышленной продукции. Исключительные юмористы писали.
      Ответить
    • По-моему, человек заучил что $('.product_documents') - это список элементов с классом product_documents. Вот он и работает с ним как со списком. А то, что этот список строится заново при каждом вызове, осталось за кадром.
      Т.е. имеем знание внешних атрибутов без понимания сути происходящего.
      Ответить
      • А он не кэшируется? Я не очень в курсе начинки jQuery, но меня смутило намерение брать по идентификатору элемент, ссылка на который уже получена.
        Ответить
        • . - это не идентификатор, это класс. jQuery позволяет использовать CSS нотацию при запросах.
          И нет, он не кэшируется. DOM-структура может поменяться, а отслеживать это... даже если можно, дешевле просто строить каждый раз список заново.
          Ответить
          • «. - это не идентификатор, это класс.»
            Нет, я имею в виду то, что дальше делается: у узла берётся айдишник и по нему мы получаем тот же узел. Если автора смущает, что сначала он получает не совсем узел, а jQuery-объект, и что с ним делать, он не знает, так просто .get(0) же.
            Ответить
            • И городить такую красоту просто ради того чтобы скрыть фундаментальные ошибки чьего-то говнокода?
              Не, ну можно конечно... Но нужно ли?
              Ответить
              • >>фундаментальные ошибки чьего-то говнокода?
                JQuery? Маздай!
                Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8