将变量从javascript传输到math.js(getElementById())
我正在尝试将javascript变量传输到math.js函数。变量(denexp)由getElementById获得,如下所示:将变量从javascript传输到math.js(getElementById()),javascript,getelementbyid,math.js,Javascript,Getelementbyid,Math.js,我正在尝试将javascript变量传输到math.js函数。变量(denexp)由getElementById获得,如下所示: 身体{ 字体系列:无衬线; } 兽穴 const sim=math.parser() const denexp=document.getElementById(“denid”).value; 模拟评估(“G=denexp”)//密度 然而,似乎math.js无法读取denexp 我得到以下错误: 未捕获错误:未定义的符号denexp 你有什么想法吗?在传递给eva
身体{
字体系列:无衬线;
}
兽穴
const sim=math.parser()
const denexp=document.getElementById(“denid”).value;
模拟评估(“G=denexp”)//密度
然而,似乎math.js
无法读取denexp
我得到以下错误:
未捕获错误:未定义的符号denexp
你有什么想法吗?在传递给evaluate
的字符串(“G=denexp”
)中,Math.js希望只找到数字、单位和数学符号:0.5
,sin
,sqrt
,deg
,等等。您试图通过简单地将变量包含在字符串中来传递变量denexp
,但是“denexp”
不是Math.js可以理解的符号。相反,您必须将denexp
的值附加到字符串:
sim.evaluate("G = " + denexp)
或者,如果您的浏览器目标支持模板文字:
sim.evaluate(`G = ${denexp}`)
或者,您可以为Math.js提供一个作用域,该作用域允许您在表达式中使用作用域中定义的任何变量:
var scope = {
denexp: denexp
}
sim.evaluate("G = denexp", scope)
这样做的好处是,任何变量赋值(如G=
此处)也将保存到作用域中(尽管简单地将一个变量赋值给另一个变量,就像在您的示例中所做的那样,不是很有用,也可能不是您的目标)