繁体   English   中英

Javascript / JQuery:innerHTML无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM