Javascript JQuery Ajax不更新DOM(我认为)

Javascript JQuery Ajax不更新DOM(我认为),javascript,jquery,html,ajax,dom,Javascript,Jquery,Html,Ajax,Dom,我有一个问题,在我的页面中,我有一个div,它包含两个值为0和2的隐藏字段。我有一个按钮,可以触发ajax查询,并使用相同的隐藏字段更改div内容,但分别使用值1和2。问题是,我的javascript(使用JQuery)似乎没有意识到这些变化。当我检查页面以查看html源代码时,我看到值已更改,但在脚本中执行以下操作时: $("#btn").click(function() { alert($("#hidden1").val()); alert($("#hidden2").val

我有一个问题,在我的页面中,我有一个div,它包含两个值为0和2的隐藏字段。我有一个按钮,可以触发ajax查询,并使用相同的隐藏字段更改div内容,但分别使用值1和2。问题是,我的javascript(使用JQuery)似乎没有意识到这些变化。当我检查页面以查看html源代码时,我看到值已更改,但在脚本中执行以下操作时:

$("#btn").click(function() {
    alert($("#hidden1").val());
    alert($("#hidden2").val());
});
它仍然会显示旧值(0和2),就像DOM没有更新一样。有人能帮我一下吗?或者告诉我这是否正常,以及如何修复

谢谢你的时间 我

试试这个:

$("#btn").on('click', function() {
  alert($("#hidden1").val());
  alert($("#hidden2").val());
});

并不是DOM没有被更新,可能是因为jQuery事件当时绑定到了特定元素。click()被称为。由于DOM发生了更改(您可能删除并添加了一个相同id的新元素),因此该函数将返回您丢弃的元素的值(因为即使从DOM中删除,它仍与之绑定)


使用方法或作为处理程序的替换。jQuery提供的这个方法在被调用时不会绑定到特定的DOM元素,但是每次检测到单击时都会进行动态查找。

您可以添加更改字段的代码吗?更改字段的代码在哪里?您在哪里更改hidden1和hidden2的值?如果ajax调用应该更改这些字段的值,您需要等到ajax调用完成,在警告输入字段的值之前。查看ajax方法的
success(data)
属性。用户您确定每个隐藏字段没有两个吗?您是否绝对确定在ajax请求过程中要替换这些对象?
.live()
与DOM没有得到更新有什么关系
.live()
确保事件侦听器绑定到选择器,而不是当前显示与选择器匹配的元素。是否
.live()
也被弃用?是的,它被弃用。旧习难改。它被替换为()上的
。实际上这两者并不相关。My div在与按钮单击无关的特定事件时更新,并且在更改完成后手动单击。。那么为什么它不会被更新呢?这样你的按钮就不会被替换了?那么还有其他事情在进行,也许是制作一个JSFIDLE或者其他东西来演示这个问题?我可以在JSFIDLE上模拟ajax调用吗??因为否则就没有意义了