这是一个非常奇怪的问题
statements[bracket].assembly+='<expr operator="'+statements[bracket].firsthalf.mathoperator+'"><constant value="'+statements[bracket].firsthalf.constant+'" /><parameter name="'+statements[bracket].secondhalf.parameter+'"/></expr>'
statements[bracket].firsthalf.constant=2
,邮件应显示为<constant value="2" />
,但标记显示为<constant value="2"></constant>
,知道标签自动关闭的原因吗?!
答案 0 :(得分:2)
您必须已将表达式传递到字符串被视为HTML的某个位置(例如innerHTML)。问题不在于您显示的字符串操作代码,而在于其他地方。
在您评估此表达式与提醒语句的时间之间会发生什么?
答案 1 :(得分:1)
代码不会生成您显示的输出。您实际上是在使用其他代码,或者在显示它之前使用字符串(比如将其解析为XML)。
我提供了这些数据的代码:
var bracket = 0;
var statements = [
{ assembly: '', operator: 'greater',
firsthalf: { mathoperator: '*', constant: '2', parameter: '' },
secondhalf: { mathoperator: '', constant: '2', parameter: '' }
} ];
这使代码警告此字符串,如预期的那样:
<greater><expr operator="*"> <constant value="2" /> <parameter name=""/> </expr><parameter name=""/></greater>