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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
$('div').each(function () {
if ($(this).attr('id') == 'blok') {
$(this).html('');
}
});

Хочется взять и уебать…

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

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

  • Бугога)
    Это кем надо быть...

    +1 откуда код?
    Ответить
  • document.getElementById("blok").innerHTML = "";

    - а так даже jquery не нужен. Люди совсем программировать разучились.
    Ответить
    • Это очень правильно. Надо иметь ввиду еще, что в jQuery много вещей через жопу сделано. Например, для получения текстового содержимого элемента (метод text()) не используется короткий кроссбраузерный путь: elem.textContent || elem.innerText; А делается перебор всех чайлдов и проверка это текстовая нода или нет, и соответсвенно собирается строка из этого. Такой подход глючит например, если у элемента есть чайлд элемент object или canvas.
      Ответить
      • Видимо на то есть свои причины.
        Впрочем, я сам видел такой говнокод:
        merge: function( first, second ) {
                // We have to loop this way because IE & Opera overwrite the length
                // expando of getElementsByTagName
                var i = 0, elem, pos = first.length;
                // Also, we need to make sure that the correct elements are being returned
                // (IE returns comment nodes in a '*' query)
                if ( !jQuery.support.getAll ) {
                    while ( (elem = second[ i++ ]) != null )
                        if ( elem.nodeType != 8 )
                            first[ pos++ ] = elem;
        
                } else
                    while ( (elem = second[ i++ ]) != null )
                        first[ pos++ ] = elem;
        
                return first;
            }
        Ответить
    • Айайай, а если элемента id = blok не существует?

      Мне кажется, что на самом деле у в данной задаче был не один элемент с id = blok, что, безусловно, тоже неправильно. Перебор всех div'ов на странице, конечно, брутальный метод.
      Ответить
      • А если элемента нет, то если по нормальному, то должна вывестись ошибка. И если у человека в коде несколько элементов с одним id, то это чисто его проблемы, что он не знает стандартов.
        Ответить
      • Rules with overly qualified selectors
        For example:

        ul#top_blue_nav {...}
        form#UserLogin {...}

        ID selectors are unique by definition. Including tag or class qualifiers just adds redundant information that needs to be evaluated needlessly.
        Ответить
    • Угу, даешь проекты на чистом JS, долой всякие джыквери мутулзы и эксты с ними же.
      Ответить
    • собственно, скорее всего аффтор подразумевал поиск нескольких дивов, геБайОйди не выручит...
      Ответить
  • Вспомнился бойан с 10 страницы:
    $('div[id="myid"]')
    Ответить
  • Из той же серии:

    $('*).each(function () {
    if ($(this).attr('tagName') == 'div') {
    if ($(this).attr('id') == 'blok') {
    $(this).html('');
    }}
    });
    Ответить
  • тут правильнее юзать
    $('#blok').empty();

    в этом случае "Other jQuery constructs such as data or event handlers are erased as well."
    зы плюсанул))
    Ответить

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

Переведи на "PHP", guest!

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


    8