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, время: 14:37. |