Javascript AJAX结果不符合DOM

Javascript AJAX结果不符合DOM,javascript,ajax,dom,Javascript,Ajax,Dom,我有一个成功的AJAX请求和结果。结果是简单的文本,我希望将其放入DOM中的表行中。代码如下: xhr.onreadystatechange = function(event) { if (xhr.readyState === 4 && xhr.status === 200) { var results = xhr.responseText; var col = document.getElementById("tr_concept_0_1_32"

我有一个成功的AJAX请求和结果。结果是简单的文本,我希望将其放入DOM中的表行中。代码如下:

xhr.onreadystatechange = function(event) {
    if (xhr.readyState === 4 && xhr.status === 200) {
      var results = xhr.responseText;
      var col = document.getElementById("tr_concept_0_1_32").getElementsByClassName("col_1")[0];
      col.innerHTML = results;
    }
    else {
      console.log(event);
      alert("something went wrong!: " + event);
    }
  };
当我
返回col.innerHTML=results时我可以看到DOM正在被修改,但它很快就会恢复到以前的值

我是AJAX新手,所以我不太清楚为什么“新值”不适用于DOM。 有什么建议吗

更多代码:
更新按钮

form.form-search(id='searchForm')
      fieldset
        .input-append
          input.input-xxlarge.search-query#search(type='text', placeholder='Search', name='q')
          button.btn.submit(onclick='getParams(); return false;') Search
上面是正在执行此工作的代码。用户单击表单的
按钮
。这可能是问题所在吗?我没有从这一头处理正确的事情

更新按钮 上述代码在Chrome中运行良好,但在Firefox中不起作用。
在Firefox中,post返回
success
,但不会触发
onreadystatechange

有什么建议吗?

我认为按钮正在发送AJAX、和提交表单……因此“重新加载”页面-因此您会看到“重置”值

如果您的按钮只打算提交AJAX,请将其
type
属性更改为“button”,或者使用
onclick='getParams();返回false;'用于其
onclick
处理程序

还有其他方法可以做到这一点,但在我的建议中,使用
returnfalse阻止提交按钮的默认行为-提交。但是因为它在
getParams()之后
getParams
仍然被调用,并执行您需要的操作—AJAX


如果将
type
属性更改为“button”,它甚至不会有提交行为,因此不会出现此问题。

不要在
onreadystatechange
方法中使用
return
。你这么做有什么原因吗?没有。。。我想这就是我的习惯吧。刚把它取下来。同样的问题。你的页面上还运行着什么代码?发布的代码段中没有任何内容会将其还原。您是否碰巧同时执行了多个AJAX请求?或者您正在测试的只是1?我认为按钮正在发送AJAX,并提交表单…因此“重新加载”页面-您会看到值重置。如果您的按钮只打算提交AJAX,请将其
type
属性更改为“button”,或者使用
onclick='getParams();返回false;'用于其
onclick
处理程序。