javascript
  • html
  • 2014-09-02 71 views 0 likes 
    0

    我有一個javascript函數,它需要一個由JSP返回的xml字符串並解析它,並且應該將其寫入頁面。代碼是:innerHTML不寫入頁面

    function renderResults() { 
    alert("renderResults()"); 
    element = document.getElementById("results").innerHTML; 
    var xmlString = '<%=session.getAttribute("directoryInfo")%>'; 
    
    if (window.DOMParser) { 
        parser = new DOMParser(); 
        xmlDoc = parser.parseFromString(xmlString, "text/xml"); 
    } else { 
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
        xmlDoc.async = false; 
        xmlDoc.loadXML(xmlString); 
    } 
    var x = xmlDoc.getElementsByTagName("person"); 
    for (var i = 0; i < x.length; i++) { 
        console.log(x[i].getElementsByTagName("firstname")[0].childNodes[0].nodeValue); 
        console.log(x[i].getElementsByTagName("lastname")[0].childNodes[0].nodeValue); 
        element += '<p>' + x[i].getElementsByTagName("firstname")[0].childNodes[0].nodeValue + 
         " " + x[i].getElementsByTagName("lastname")[0].childNodes[0].nodeValue + '</p>'; 
        console.log(element); 
    } 
    } 
    

    由於某些原因,它不會寫入。在表單提交後,renderResults()函數被調用:

    var formData = { 
        "field1": field1, 
        "oper1": oper1, 
        "value1": value1, 
        "field2": field2, 
        "oper2": oper2, 
        "value2": value2, 
        "field3": field3, 
        "oper3": oper3, 
        "value3": value3 
    }; 
    jQuery.post("<%=request.getRequestURL().toString()%>getInfo.jsp", formData, function(response) { 
        alertHere(response) 
    }); 
    
    renderResults(); 
    

    我不知道renderResults功能工作,因爲我所有的console.logs都輸出正確的信息。

    Console.log(element)最後輸出應該寫入頁面的正確html。

    有什麼建議嗎?我相對較新的JavaScript,所以我想弄清楚事情是如何以及何時呈現的。

    我不確定這是否與我的問題有關。

    +4

    您不會在任何地方返回「innerHTML」。僅供參考:爲變量或屬性指定新值**從不**改變其他變量或屬性的值(例外:全局範圍,'帶'和像getter這樣的奇特事物)。 – 2014-09-02 15:01:59

    +0

    同樣在這裏我沒有看到它 – 2014-09-02 15:02:32

    回答

    3

    element = document.getElementById("results").innerHTML;字符串innerHTML複製到element

    它不創建參考。

    更新的element值將不會更新的innerHTML

    值要做到這一點,你必須指定一個新值回innerHTML

    +0

    複製你想要使用的參考 element = document.getElementById(「results」); 然後使用 element.innerHTML =「something」; – David 2014-09-02 15:03:29

    相關問題