在javascript的更新序列中使用mathjax

在javascript的更新序列中使用mathjax,javascript,html,updates,mathjax,Javascript,Html,Updates,Mathjax,我的程序中有四个动态变量 xzero, xone, xtwo, xthree 表示三次函数的系数。我想在HTML中以以下格式显示实际方程式: xthree*x^3+xtwo*x^2+xone*x+xzero=f(x) 但它需要能够用变量进行更新,所以我原本以为我会做一个 document.getElementById("demo").innerHTML = (new equation); 但在我看来,要么mathJax不能在javascript中工作,要么我做得不对。我能想到的唯一替代解决

我的程序中有四个动态变量

xzero, xone, xtwo, xthree
表示三次函数的系数。我想在HTML中以以下格式显示实际方程式:

xthree*x^3+xtwo*x^2+xone*x+xzero=f(x)
但它需要能够用变量进行更新,所以我原本以为我会做一个

document.getElementById("demo").innerHTML = (new equation);

但在我看来,要么mathJax不能在javascript中工作,要么我做得不对。我能想到的唯一替代解决方案是为每个变量制作四个单独的div标记,并将它们全部更新,但这似乎不必要地笨拙。我可以得到一些关于如何解决这个问题的指示吗?

MathJax在加载文档时自动呈现文档,但不会在以后。尝试显式请求重新渲染:

document.getElementById("demo").innerHTML = "...";
MathJax.Hub.Queue(["Typeset", MathJax.Hub, 'demo']);
编辑:经过一些思考,我认为您可以在一个元素中请求渲染,将其隐藏,然后将完成的标记复制到另一个元素中,以防止闪烁:

var mathDiv=document.getElementById('math');
var displayDiv=document.getElementById('display');
Queue([“Typeset”,MathJax.Hub,math“]);
队列(函数(){
var math=MathJax.Hub.getAllJax(“MathDiv”)[0];
var i=1;
setInterval(函数(){
Queue([“Text”,math,“\\int_0^{”+i+“}x dx”]);
队列(函数(){
displayDiv.innerHTML=mathDiv.innerHTML;
});
i++;
}, 1000);
});
数学{
显示:无
}

$$$$

这似乎可行,但有一小会儿,当我更新它时,在渲染之前,方程式似乎显示为$…$。这导致我的页面发抖,那么有没有办法解决这个问题?不,更新似乎没有做任何事情来重新播放它,不幸的是。好吧,经过一点思考,我认为这应该是可行的。