Неисправность функций AJAX и DOM - PullRequest
0 голосов
/ 11 августа 2011

пытается вызвать метод для создания контейнера отображения для

xmlhttp.responseText;//createDisplayElement()

В следующих случаях: Документ JS BIN

Нет ошибок в консоли ошибок вFF, но поведение отключено, не обновляется страница должным образом.

Ответы [ 3 ]

1 голос
/ 11 августа 2011

В этой функции отсутствует ссылка на obj

function createDisplayElement(){

    var para = document.createElement("p");
    obj.appendChild(para);
    var txt = xmlhttp.responseText;
    para.appendChild(txt);

}
1 голос
/ 11 августа 2011

Я вижу 2 проблемы в коде.

  1. obj не определен правильно.
  2. простой текст (xmlhttp.responseText) добавляется к элементу p.

Они оба исправлены ниже.

Попробуйте это,

function makerequest(serverPage, objID)
{

    xmlhttp.open("GET", serverPage);
    xmlhttp.onreadystatechange = function(){

        if(xmlhttp.status == 200 || xmlhttp.readyState == 4){

            createDisplayElement(objID);
        }
    };

    xmlhttp.send(null);
}

function createDisplayElement(objID){
    var obj = document.getElementById(objID);
    var para = document.createElement("p");
    obj.appendChild(para);
    var txtNode = document.createTextNode(xmlhttp.responseText);
    para.appendChild(txtNode);

}
1 голос
/ 11 августа 2011

Похоже, obj может быть неправильно определено в контексте функции. Попробуйте this вместо:

// It is called as:
obj.createDisplayElement(); 


// But the function also uses obj
function createDisplayElement(){

    var para = document.createElement("p");
    this.appendChild(para);
  //^^^^^^  
    var txt = xmlhttp.responseText;
    para.appendChild(txt);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...