[英]Javascript/JQuery: innerHTML Not Working
我想將<div id="homePagePosts">
的內容更改為來自服務器的新數據。 新數據采用服務器呈現的HTML
格式。 但是,瀏覽器收到AJAX
數據后,舊的HTML仍然保持不變。
當我如下所示顯示console.log
,我可以看到呈現的新HTML數據顯示在控制台中。 我已將Javascript和JQuery文件都放在<body>
的底部,但仍然無法正常工作。 我不太確定這里哪里出錯了。
的HTML
<div id="homePagePosts">
<% include ../ajaxSnippets/mainHome %>
</div>
Java腳本
$.ajax({
url: "/main/home",
type: "POST",
contentType: "application/json",
data: JSON.stringify(sendData)
}).done(function(result){
//This shows up in the console
console.log(result)
updateMainPagePosts(result);
}).fail(function(err){
console.log(err);
});
var updateMainPagePosts = function(posts){
document.getElementById("homePagePosts").innerHTML = posts;
};
您已將函數定義為變量,並且無法在此方法中使用。
改變這個:
var updateMainPagePosts = function(posts){
document.getElementById("homePagePosts").innerHTML = posts;
};
對此:
function updateMainPagePosts(posts){
document.getElementById("homePagePosts").innerHTML = posts;
}
來自以下網址的更多詳細信息: https : //www.quora.com/Is-the-var-x-function-the-same-as-the-function-x-in-JavaScript :
這會破壞。 它使用分配給變量的函數表達式。 console.log(myFunction(1,2)); var myFunction = function(a,b){return a + b; };
這會將“ 3”打印到您的控制台。 它使用函數聲明。 console.log(myFunction(1,2)); 函數myFunction(a,b){返回a + b; }
區別在於,在具有函數定義的示例中,該函數被JavaScript解釋器“提升”到作用域的開頭(例如,可以是父函數或文件),這意味着該函數中的任何位置可以調用它,它將執行您編寫的功能。
在函數Expression中,函數就像是一個值一樣被傳遞,並在需要時被解釋。 在此示例中,我們將其分配給myFunction變量。 由於我們在該變量的前面放置了一個'var'語句,因此該變量的myFunction已被吊起,但其值(函數表達式)未被吊起(不要混淆兩者)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.