Javascript 为什么可以';我是否可以通过jQuery修改此post请求的响应?

Javascript 为什么可以';我是否可以通过jQuery修改此post请求的响应?,javascript,html,jquery,Javascript,Html,Jquery,因此,我有一个登录表单,提交后将重定向到主页/ 我希望表单具有相同的行为,但当我从服务器收到以HTML数据形式返回的响应时,我可以修改该HTML数据,以便在重定向发生后,主页将显示修改后的HTML: $(#login-form).submit(function(event) { event.preventDefault(); var $form = $(this); var user = $("#username").val(); var passwd = $

因此,我有一个登录表单,提交后将重定向到主页
/

我希望表单具有相同的行为,但当我从服务器收到以HTML数据形式返回的响应时,我可以修改该HTML数据,以便在重定向发生后,主页将显示修改后的HTML:

$(#login-form).submit(function(event) {
  event.preventDefault();
  var $form = $(this);
  var user = $("#username").val();
  var passwd = $("#password").val();
  var url = $form.attr("action");
  var posting = $.post(url, { username: user, password: passwd });
  posting.done(function(data) {
    $(data).find("#logged-user").text("user777");
    $('html').html(data);
  });
});
在上面的代码片段中,当say
user111
登录时,会有一个span标记
,显示登录用户的名称

但是,当我试图操纵这个span标记时,它会通过
$(data.find(#logged user”).text(“user777”)它不工作。为什么?

试试这个:

posting.done(功能(数据){
var tmp=$(''+数据+'');//创建一个临时DOM
tmp.find(“#logged user”).text(“user777”);//修改它
$('html').html(tmp.html());//获取它的html并使用它
});
或者简单地说:

posting.done(功能(数据){
$('html').html(数据);
$(“#登录用户”).text(“用户777”);
});

您不是在修改数据,而是从数据中创建DOM,对其进行修改,然后什么也不做。您需要将其附加到页面中的某个位置:因此,我通过
$('HTML').HTML(数据)呈现HTML响应,而不是
window.location.replace(“./”)
。然而,问题仍然存在——登录时仍然显示
user111
。“修改HTML数据,以便在重定向发生后,主页将显示修改后的HTML”-重定向意味着加载新页面,意味着您在当前页面中使用JavaScript所做的一切都将在那时消失。您必须将修改后的HTML存储在某个位置,以便您可以在重定向到的文档中阅读它。非常好用,谢谢!