【发布时间】:2017-10-10 18:05:42
【问题描述】:
我想让 console.log 中的文本以彩虹色数组显示。问题是控制台似乎没有解析样式。相反,当我在控制台中尝试 rainbowify(myString); 时,它正在输出文字字符串。我已经尝试过toString(),但没有成功。
奇怪的是,如果我复制并粘贴输出并将其放入控制台日志(在控制台中),它可以正常工作。我需要了解为什么它不解析 css 样式,而只是将其作为字符串输出。
var myString = "abcdefghijklmnopqrstuvwxyz";
var rainbow = ["red", "yellow", "pink", "green", "purple", "orange", "blue"];
function rainbowify(string) {
var splitString = string.split("");
var stringConCat = "";
var stringCss = "";
for (var i = 0, j = 0; i < splitString.length; i++, j++) {
stringConCat += "\"%c" + splitString[i] + "\"" + " + ";
stringCss += "\"color : " + rainbow[j] + "\"" + ", ";
if (j === rainbow.length - 1) {
j = 0;
}
}
var stringSliced = stringConCat.slice(0, -3);
var cssSliced = stringCss.slice(0, -2);
console.log(stringSliced + ", " + cssSliced);
}
【问题讨论】:
-
您的代码生成一个包含 JavaScript 的字符串,而您的
console.log只是输出该字符串。当您将字符串复制并粘贴到控制台中时,您正在评估它。考虑console.log("%ca", "color: red")和console.log('"%ca", "color: red"')之间的区别,或者只是x = 1 + 2与x = "1 + 2"之间的区别。 -
如描述中所述,我是从控制台调用该函数。
-
@meagar 我认为这可能是问题所在,但我不知道如何解决。
标签: javascript css console.log