如何在DOM Maniplunation后面附加mathJax段落?

时间:2018-08-23 09:37:05

标签: javascript html dom mathjax

我一直试图将本页上的文档包装起来 https://docs.mathjax.org/en/v1.0/typeset.html,但似乎无法正常工作。

如果我在静态HTML页面上键入表达式,但是如果我尝试以这种方式添加段落,则效果很好:

let para = document.createElement("P");
let testExp =  document.createTextNode("$$ testexpression \cdot \frac{2}{3}$$");
para.appendChild(testExp);
document.getElementById("sampleDoc").append(para);

表达式仅显示为字符串。我知道人们以前也曾问过类似的问题,但我找不到对我有帮助的东西。

如果有人能解释为什么它不能以这种方式工作,但如果我在静态HTML页面上编写与段落相同的表达式的话,我也很感兴趣

亲切的问候

1 个答案:

答案 0 :(得分:1)

createTextNode仅创建纯文本节点。您没有在代码中调用排版功能,因此它永远不会改变。您可以添加以下行:

MathJax.Hub.Queue(["Typeset", MathJax.Hub, "sampleDoc"]);

这使MathJax的排版功能排队,如文档中所述。它遍历您的文档并进行必要的更改。最后一个参数是要排版的特定元素的ID。您可以忽略它来排版整个文档。

您不需要在静态页面上执行任何操作,因为MathJax在加载时会自动运行排版功能。