JS. Не видит объект
Здравствуйте.
Надеюсь правильно озаглавил тему. Итак, проблема такова. Есть функция, которая должна менять при клике фоновый цвет нужного tbody, а фоновый цвет всех остальных tbody делать прозрачными/белыми/неважно. вот функция: 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"; } } } что самое интересное, вот этот кусок работает: if (i == nidmarka) { document.getElementById(nbody).style.backgroundColor = "#FFC4C4"; } , а вот этот нет document.getElementById(nbody).style.backgroundColor = "#ffffff"; И еще один момент. Если принудительно на условие иначе прописать не переменную, а конкретное значение, то всё сработает, т.е. document.getElementById('tbody_36_68').style.backgroundColor = "#ffffff"; спасибо.. |
Цитата:
|
Цитата:
|
Значит, элемента с id=nbody не существует. Смотрите, на каком nbody оно падает и думайте, почему оно формирует такую строку.
|
Цитата:
если просто алертом выводить nbody, то всё путём, будут выданы все значения!!! else { alert(nbody); } НО!, стоит изменить код на следующий else { alert(document.getElementById(nbody).style.backgroundColor); } и всё! всё стопарится на первом же else. Да я уже голову сломал в догадках почему для if всё путём, а для else - не пашет. |
Возможно стоит проверить уникальность id в пределах страницы.
|
Вставьте внуть else
if(document.getElementById(nbody) == null) alert(nbody + ' doesnt exist'); |
Цитата:
tbody_01_0 doesnt exist ... tbody_36_68 doesnt exist ну т.е. все tbody кроме выбранного. а почему оно нулл ?! |
Цитата:
совпадение исключено, 100%. |
Цитата:
|
Часовой пояс GMT +3, время: 12:57. |