Я обнаружил, что самый простой способ динамического обновления с помощью MathML - позволить MathJax выполнять изменения содержимого (вместо функции jQuery .html (s), например). Затем он обрабатывает математику при изменении содержимого.
<script type="text/javascript">
function updateMathContent(s) {
var math = MathJax.Hub.getAllJax("mathdiv")[0];
MathJax.Hub.Queue(["Text", math, s]);
}
</script>
...
<div id="mathdiv">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
</math>
</div>
Так что просто используйте функцию, чтобы заменить все содержимое div новым MathML, и он будет работать.(Сценарий идет в голову.)
Примечание. Если у вас пустой математический блок и вы добавите MathML позже, вы получите ошибку сценария.Но если внутри математических тегов ничего нет, вызов updateMathContent будет работать.