За последние 24 часа нас посетил 17721 программист и 1658 роботов. Сейчас ищут 964 программиста ...

JS. Не видит объект

Тема в разделе "JavaScript и AJAX", создана пользователем stos, 25 дек 2011.

  1. stos

    stos Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    57
    Симпатии:
    0
    Здравствуйте.
    Надеюсь правильно озаглавил тему.
    Итак, проблема такова. Есть функция, которая должна менять при клике фоновый цвет нужного tbody, а фоновый цвет всех остальных tbody делать прозрачными/белыми/неважно.
    вот функция:
    [js]
    function show_products_marka(nid,nidmarka,m)
    {
    for (i = 0; i < m; i++)
    {
    nbody = 'tbody_' + nid + '_' + i;
    if (i == nidmarka)
    {
    document.getElementById(nbody).style.backgroundColor = "#FFC4C4";
    }
    else
    {
    document.getElementById(nbody).style.backgroundColor = "#ffffff";
    }
    }
    }
    [/js]

    что самое интересное, вот этот кусок работает:
    [js]if (i == nidmarka)
    {
    document.getElementById(nbody).style.backgroundColor = "#FFC4C4";
    }[/js]
    , а вот этот нет

    [js]
    document.getElementById(nbody).style.backgroundColor = "#ffffff";
    [/js]

    И еще один момент.
    Если принудительно на условие иначе прописать не переменную, а конкретное значение, то всё сработает, т.е.
    [js]document.getElementById('tbody_36_68').style.backgroundColor = "#ffffff";[/js]

    заранее благодарен...
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    заюзай jQuery и не парь себе голову. =)
     
  3. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    лучше уж rightjs\prototype\mootools чем этого монстра при том громадного jquery
     
  4. stos

    stos Активный пользователь

    С нами с:
    28 дек 2007
    Сообщения:
    57
    Симпатии:
    0
    это полный ппц.
    дело оказалось в кавычках.
    было
    PHP:
    1. echo "<tbody style=\"background: #008000;\" id='tbody_".$cat2_tmp[$marka]["razdel"]."_".$cat2_tmp[$marka]["idmarka"]."'>\n";
    заменил на
    PHP:
    1. echo "<tbody style=\"background: #008000;\" id=\"tbody_".$cat2_tmp[$marka]["razdel"]."_".$cat2_tmp[$marka]["idmarka"]."\">\n";
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Михаил
    лечитесь =)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Михаил
    порнушку вы наверное из принципа не качаете? она ж блин невъебенно громадная! =) жость
     
  7. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    а что я не так сказал? то что jquery это полная фигня, тяжёлая, так ешё плагины вместе могут не работать. как так, так все советуют ооп, а здесь с одним об\ектом можно и запутаться.
    слышали про оптимизацию? так в неё входит и вес библиотек.
    да и вообше stos всё правильно делаешь, все клиенты лучшие пишуться на pure javascript
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Двести кешируемых килобайт это большая? У вас на вашем труЪ оптимизированним сайте даже картинок нет? Смешно
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Двести кешируемых килобайт это большая? У вас на вашем труЪ оптимизированним сайте даже картинок нет? Смешно
     
  10. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    может быть потому что ты не клепал кроме сайтов-визиток и магазинов и ничего более.
    а аргументировать как-то свою позицию слабо? или миллионы мух не могут ошибаться?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я аргументировал а ты нет
     
  12. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    как ты аргументировал? сказал, что я порно не качаю, так как оно много весит? вот это аргумент! или про кеш-мые кб?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    угу. именно. и про то что 200 кб это одна-две картинки средней паршивости. т.е. такого размера величины находятся на уровне погрешности измерений и вобще не могут служить основанием для парилки мозга. При этом еще и кешируется надолго.

    Это называется "аргументация". А то что ты говоришь - это "постулаты". Они заучены и ни на чем не основываются. и ты не приводишь никакой аргументации для их подтверждения.

    жук весит на 200 кило больше коровы - это факт. Но это не плохо и не хорошо, и из этого ничего не следует.
     
  14. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    igordata
    Помимо веса скриптов (jQuery) и их передачи по сети есть ещё один момент - их обработка браузером, типа компиляция - преобразование из текста в некий байт-код, который выполнит процессор.
    Когда такого текста много, то этот процесс будет длиться дольше. На нормальных современных компах, конечно, это незаметно, но я вот имею возможность видеть, как браузер замирает в раздумьях перед отображением страницы. Иногда это раздражает. И памяти больше кушает. Мне не нравится, когда то, что я делаю будет где-то подтормаживать.

    НО! Я не хочу сказать, что это повод не использовать jQuery. Правильней, пожалуй, идти в ногу со временем и не ориентироваться на старые компы (или шестой ИЕ).

    Лично для меня, пожалуй, основной причиной, почему я практически никогда не использую jQ - я считаю, что я ещё многое не знаю о самом JS. И я не хочу брать какие-то готовые штуки, пока не разберусь с тем, как всё это работает на "более низком уровне". Я конечно, не говорю сейчас об ассемблере, хотя и к нему немножко прикоснулся и даже написал когда-то пару простеньких програмок на нём. Возможно, когда-нибудь я изучу его глубже. Сейчас параллельно изучаю Си, интересно. Что же касается jQuery - мне просто интереснее писать на JS. Но если времени в обрез - да, jQ позволяет сделать работу быстрее.
     
  15. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    sobachnik
    так в принципе и нужно только pure javascript)
    что касается заявлений igordata, то они безосновательны, в jquery главное почему-то преимушество это цепочки вызовов, в чём это преимушество цепочек не понимаю
     
  16. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Михаил
    Преимущество в том, что можно быстрее сделать работу - грубо говоря, меньше писать самому. Меньше думать - многое уже придумано. Не обязательно знать особенности разных браузеров, достаточно знать jQuery. А с браузерами уже будет разбираться оно (он, она?). Я это примерно так представляю.
     
  17. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    неа цепочки не для этого.
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Михаил
    что касается заявлений igordata, то они безосновательны
    безосновательно говорить, что кто-то говорит безосновательно, не приводя при этом оснований, почему безосновательно.

    так что умничать не надо. =) выглядишь дураком. имеешь с неба взятую позицию и не привел ни одного аргумента чтобы как-то объяснить мнение. собачник и то за тебя привел версию про скорость обработки. хотя есть механизмы ускорения жука.

    по мне так то что у жука документация говно - вполне себе аргумент. А то что он весит на двести кило кеша больше - это хуйня а не аргумент, уж простите.
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    про чистый js:

    sobachnik
    Преимущество в том, что можно быстрее сделать работу - грубо говоря, меньше писать самому. Меньше думать - многое уже придумано. Не обязательно знать особенности разных браузеров, достаточно знать jQuery. А с браузерами уже будет разбираться оно (он, она?). Я это примерно так представляю.

    Ты не представляешь, насколько ты правильно понял, но все равно чутка не правильно. Я объясню на простом примере =)

    Вот пришел ко мне михаил, я ему задал задачку, он сделал, ушел.
    Через пол года мне надо что-то поменять.
    Вот пришел ко мне собачник, почесал репу, сделал, ушел.
    Через полгода надо мне что-то поменять.
    Пришел ко мне третий прогер и матерится, что тут все самописное, местами не кроссбраузерное, и разбираться в этом, даже если это хороший код, он не хочет за обычную плату. И я его понимаю.

    Вот кто такой собачник? Я его лично не знаю. Вот кто такой михаил? Я его лично не знаю.
    Почему я должен доверять его коду больше, чем многовылизываемой библиотеке?

    Писать на чистом js это конечно круто. Но фреймворки подразумевают, что следующий прогер не будет разбираться неделю с тем, что там накодили предыдущие.
     
  20. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну тут смотря какой следующий прогер придёт :) Может тоже такой же, которому интереснее работать без фреймворка. Хотя, наверно, таких меньшинство :)
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    sobachnik
    интересно - дома пожалуйста и за свой счет ;)
     
  22. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    все названные мной библиотеки дают объектный подход который более удобен.
    работа с коллекциями также на высоте, а то это бывает часто как аргумент в пользу jquery.
    специальные объекты создания элементов, а не $('<div></div>').
    несовместимые плагины, огромный минус jquery, неговоря о том, что большая часть их написана не профессиональными людьми, и поэтому тормозит.
    UI у jquery уж очень много весит, для простых аккордионов и табсов.
    вот и всё.

    а про pure javascript ты просто не можешь понять, что сложные эффекты например, не пишут .animate(), вот и всё.
     
  23. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    +100500

    PHP:
    1. <?php
    2. echo '<tbody style="background: #008000;" id="tbody_'.$cat2_tmp[$marka]["razdel"].'_'.$cat2_tmp[$marka]["idmarka"].'">'."\n";
    3.  
    4. // или так
    5.  
    6. echo "<tbody style="background: #008000;" id="tbody_{$cat2_tmp[$marka]['razdel']}_{$cat2_tmp[$marka]['idmarka']}">\n";
    7.  
    вообще в спецификации сказано, что атрибуты тегов должны всегда заключаться в " (двойные) кавычки
     
  24. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    Gromo
    а вы думаете как и игордата что писать на фрэймворк == хороший стиль? всё это фигня, зависит от того, кто писал
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Михаил
    ты просто даже не понял о чем я говорю. вобще. даже не попытался.
    я попытался тебя понять. ты даже не напряг моск.