Javascript 插入';乳胶';-html中的动态文本
我想通过MathJax在html文件中动态插入“LATEX”-文本Javascript 插入';乳胶';-html中的动态文本,javascript,html,mathjax,Javascript,Html,Mathjax,我想通过MathJax在html文件中动态插入“LATEX”-文本 <html> <head> <title>MathJax MathML Test Page</title> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
<html>
<head>
<title>MathJax MathML Test Page</title>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [["$","$"],["\\(","\\)"]]}
});
</script>
</head>
<body>
<div id="content" contenteditable="true" style="font-family: Helvetica">This is
</div>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var newP = document.createElement("p");
newP.innerHTML = "\(ax^2 + bx + c = 0\)";
my_div = document.getElementById("2");
document.body.insertBefore(newP, my_div);
}
</script>
<p id = '2'>
\(ax^2 + bx + c = 0\)
</p>
</body>
MathJax MathML测试页面
MathJax.Hub.Config({
tex2jax:{inlineMath:[[“$”,“$”],[“\\(“,“\\)”]}
});
这是
试试看
函数myFunction(){
var newP=document.createElement(“p”);
newP.innerHTML=“\(ax^2+bx+c=0\)”;
my_div=document.getElementById(“2”);
document.body.insertBefore(newP,my_div);
}
\(ax^2+bx+c=0\)
这段代码运行正常:
<p id = '2'>
\(ax^2 + bx + c = 0\)
</p>
\(ax^2+bx+c=0\)
但当我动态插入新段落时,我看到了错误的文本。
对不起,我的英语不好,但我真的不知道怎么改 试试这个:
function myFunction() {
var newP = document.createElement("p");
newP.id = 'unique-id';
newP.innerHTML = "\\(ax^2 + bx + c = 0\\)";
my_div = document.getElementById("2");
document.body.insertBefore(newP, my_div);
MathJax.Hub.Queue(['Typeset', MathJax.Hub, 'unique-id']);
}
一些评论:
- 分隔符是
和\(
,但由于要将它们包含在Javascript字符串中,其中\)
是特殊的,因此需要使用两个反斜杠李>\
- 插入新的
元素后,需要告诉MathJax对其进行排版,这就是它的作用;它被赋予了新创建元素的
,尽管这不是严格必需的(但它更快);注意id必须是唯一的李>id
的id在HTML中无效李>2