我正在尝试更改 html 中标签的文本,以显示上传到标签指向的输入元素的文件。我找到了这个 javascript 代码并对其进行了一些更改以适合我的 html。它没有破坏我的页面,但也没有显示文件名,而且我以前没有见过这个红色条,所以我想知道它是否与此有关,或者更一般地说,为什么该条首先出现。预先感谢您提供任何提示!
最佳答案
红色部分是语法突出显示,告诉您根据您使用的任何语言或文件类型的语法定义中规定的规则,此处显示的文本无效。这是正在使用的语法定义提供的内容,因此它不会出现在所有文件类型中(它依赖于语法作者),并且无论您可能安装了哪些第三方软件包(例如 Linters),它都会出现。
执行此操作的代码行是:
fileName = e.target.value.split('\').pop();
语法突出显示在这里为您提供了 3 种不同的提示,说明出了什么问题(因此语法突出显示提供了类似的线索):
- 该行的末尾是令人讨厌的红色;这表明该行的这一部分(实际文本之后的所有内容)在某种程度上被破坏了
- 在红色文本之前,文本
).pop();
是黄色的,这表明它是一个字符串,但它看起来根本不应该是一个字符串(从技术上讲) ,您可以看到它与上面一行中的字符串颜色相同,但与其他函数调用(如split()
) 的颜色不同) \'
序列是紫色的,这表明这被解释为字符转义
(在这里我们可以看到该文本的颜色与我们期望字符串的内容看起来像)。
总而言之,\'
并不像您想象的那样结束 split()
参数中的字符串;字符串常量从那里继续到行尾,并且由于到达行尾而字符串没有关闭,所以该行被破坏。
因此,您需要将 split()
调用参数修复为有效字符串。可能您的意思是 '\\'
(您想在反斜杠处拆分字符串)或 '\''
(您想在单引号处拆分字符串)。
关于javascript - 为什么在 Sublime 中工作时我的 javascript 代码中会出现红条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60198498/