【问题标题】:SyntaxError: identifier starts immediately after numeric literal?SyntaxError:标识符在数字文字之后立即开始?
【发布时间】:2016-05-12 13:02:06
【问题描述】:

我一直在从事我的项目,我必须对我的数据记录进行一些更新。完成更新后,我收到一个错误:SyntaxError: identifier starts immediately after numeric literal,而这行代码低于 firebug 中的错误:maxScores.ew-19a = ''

我查看了我的代码,发现这个输出来自哪里,代码如下:

var maxScores = new Object;
<cfoutput query="getRec">maxScores.#LCase(tCode)# = '#maxScore#';</cfoutput>

在我的更新中,我必须在字母和数字之间放置- 符号,在旧数据中我没有这个符号,所以我认为这会导致这里出现问题。我想知道如何防止这种情况发生,或者是否有任何方法可以在我的输出周围放置以防止这种情况发生?如果您知道如何解决此问题,请告诉我。谢谢。

【问题讨论】:

  • ew-19a 不是一个有效的标识符,因此您不能在该对象属性引用形式中使用它。您必须将其引用为字符串并使用 [ ] 来引用该属性。
  • @Pointy 你能提供例子吗?我尝试过类似的方法,但这对我不起作用。谢谢。
  • 我不知道 ColdFusion 但可能是maxScores["#LCase(tCode)#"] = '#maxScore#';
  • 只需使用maxScores[LCase(tCode)] = maxScore; 并阅读this
  • 谢谢@Pointy。我试过了,效果很好。

标签: javascript coldfusion coldfusion-11


【解决方案1】:

ColdFusion 将尝试从 19a 中减去 ew,当您将它倾倒在像这样的磅符号之间时。您将需要在此处使用括号/对象表示法。试试这个:

    <cfoutput query="getRec">
    maxScores.#LCase(getRec["tCode"][currentrow])# = '#getRec["maxScore"][currentrow]#';
</cfoutput>

如果您想小写一些东西,请在查询中执行。使用 CF 输出 JS 很有用,可以解决很多问题,但是您希望它尽可能保持清洁,以免您的大脑起雾。 :)

【讨论】:

  • maxScores.#LCase(getRec["tCode"][currentrow])# 将再次产生相同的结果。另外,不需要[currentRow]
  • @beginner - 没有时间测试,不记得是否可以省略当前行。 :) - 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
相关资源
最近更新 更多