calculate(){ const limit=this.tableData.length; let y=[]; let x=[]; for(let i=0;i<=limit-1;i++){ y.push(parseFloat(this.tableData[i].flux)); x.push(parseFloat(this.tableData[i].area)); } $.ajax({ type: "POST", url: "post_computation_analogy", data: {"y":y,"x":x}, traditional: true, // async: false, success: function (rtn) { let result0 = rtn[0] * parseFloat(this.input) + rtn[1]; flow.innerHTML="涌水量为"+result0+"涌水量单位" }, }); }这段代码中id为flow的<p>无法正常显示,是什么问题
时间: 2024-01-07 17:05:17 浏览: 104
这段代码中的 `flow` 对象没有被正确引用。可能的原因是在 `$.ajax()` 函数中,`this` 关键字已经不再指向原来的对象,而是指向了 `$.ajax()` 函数本身。解决这个问题的方法是将 `this` 关键字存储到另一个变量中,然后在 `$.ajax()` 函数中使用该变量。
你可以尝试这样修改代码:
```
calculate() {
const limit = this.tableData.length;
let y = [];
let x = [];
for (let i = 0; i <= limit - 1; i++) {
y.push(parseFloat(this.tableData[i].flux));
x.push(parseFloat(this.tableData[i].area));
}
const self = this; // 将 this 存储到 self 变量中
$.ajax({
type: "POST",
url: "post_computation_analogy",
data: { "y": y, "x": x },
traditional: true,
success: function (rtn) {
let result0 = rtn[0] * parseFloat(self.input) + rtn[1];
const flow = document.getElementById("flow"); // 获取 flow 元素
flow.innerHTML = "涌水量为 " + result0 + " 涌水量单位"; // 修改 flow 元素的内容
},
});
}
```
这样应该就可以正常显示 `flow` 元素了。
阅读全文