我正在尝试更改html中标签的文本,以显示上载到标签所指向的输入元素的文件。我找到了此javascript代码,并对其进行了一些更改以适合我的html。它并没有破坏我的页面,但也没有显示文件名,并且我之前也没有看到过这个红色的条形,所以我想知道这是否与该条形有关,或更笼统地说,为什么该条形首先出现。预先感谢您提供任何提示!
红色部分是语法突出显示,告诉您根据语法定义中针对所使用的任何语言或文件类型的规则,此处显示的文本无效。这是使用中的语法定义提供的内容,因此它不会出现在所有文件类型中(它依赖于语法作者),并且无论您可能安装了哪种第三方软件包(例如Linters),都将发生。
执行此操作的代码行是:
fileName = e.target.value.split('\').pop();
语法高亮在这里为您提供3条关于发生问题的不同提示(因此在这里,语法高亮提供了类似的线索):
).pop();
为黄色,表示它是一个字符串,但看起来根本不应该是一个字符串(从技术上讲,您可以看到它的颜色与上一行中的字符串,但与其他函数调用(例如split()
)\'
序列为紫色,表示它被解释为character escape
(在这里我们可以看到该文本的颜色与我们期望的字符串内容看起来不同)。 总而言之,\'
不会像您认为的那样以split()
的参数结尾的字符串;字符串常量从那里继续到行尾,并且由于在没有关闭字符串的情况下到达了行尾,因此该行断开了。
因此,您需要将split()
调用参数固定为有效字符串。可能您是说它是'\\'
(要在反斜杠处分割字符串)还是'\''
(要在单引号处分割字符串)。