Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > string & getElementById


Автор: Вася К. 22.12.2010, 10:39
Добрый День!

Есть такой код

Код

function replace_data(data)
{
var cname, html_data;
cname = data.substr(1, 10);
document.getElementById(cname).innerHTML = html_data;
}


Так вот,  document.getElementById(cname) в этом случае возвращает Null, но если  я  сделаю так 

Код

function replace_data(data)
{
var cname, html_data;
cname = "element_id"; // <----------- 
document.getElementById(cname).innerHTML = html_data;
}


то все получается. В чем прикол? Спасибо!

Автор: MaxTex 22.12.2010, 11:06
Может правильно так: cname = data.substr(0, 10); , тк первая позиция начинается от 0.

Автор: Вася К. 22.12.2010, 11:24
неа, alert(cname) выводит id элемента, но код не работает

Автор: MaxTex 22.12.2010, 11:46
Тогда не знаю. Информации недостаточно. 
Например откуда функция replace_data(data) получает входные данные.

Автор: Вася К. 22.12.2010, 11:58
В своем проекте я использую jquery.$.post("/somescript.php", {}. replace_data);

replace_data - это функция, которая вызывается, когда выполнится запрос somescript.php, и результат передается в нее через переменную data. Я так понимаю. что это обычный текст.

Автор: нуп 24.12.2010, 02:56
Может элемент не существует?!  smile 

Автор: ksnk 24.12.2010, 09:50
Код

cname = data.substr(1, 10);
//
alert([cname ,cname =='element_id'])
//

а если добавить туда вот такой код. что оно покажет?

функция substr(1,10) вырежет строку, начиная со второго (считаем с 1-го) символа 10 символов длиной...

Автор: Вася К. 26.12.2010, 14:12
покажет false, т. е. element_id и element_id -  либо разные вещи, либо неодинаковые строки  smile 
и поскольку это во всех браузерах так, я сделал вывод, что проблема во мне. что там сравнивается, не пойму 

Автор: ksnk 26.12.2010, 15:55
Вася К., кроме false мой код должен был бы вывести еще и оригинальное значение cname.

Вообще - пора уже открыть для себя отладчик javascript. Отладка отладчиком - несравненно эффективнее отладки на форуме  smile 

Автор: Вася К. 26.12.2010, 21:48
ksnk, спасибо!

Выяснил, что в cname вкрадывались символы \r\n. Осталось выяснить , как они туда попадають  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)