我正在使用less.js(1.3.0)少解析客户端上的CSS。在解析器的回调内部,我想获取每个变量的值。我尝试了以下但没有成功。
var data = "@colour: red; #example { background-color: @colour; }",
parser = new less.Parser({});
parser.parse(data, function (error, root) {
console.log( root.toCSS() );
var varsDef = root.variables();
for (k in varsDef) {
console.log(varsDef[k]);
// how to get the value for the var?
//not working
console.log(varsDef[k].eval());
//not working
console.log(varsDef[k].toCSS());
//is an object but looking for a string value
console.log(varsDef[k].value);
//returns an empty string
console.log(varsDef[k].value.toCSS());
}
});
eval()和toCSS()都没有给我任何结果。我不了解解析器的内部工作原理。每个变量对象都有一个变量属性varsDef [k] .value,它本身就是一个对象。但是我只需要变量的字符串值。
有谁知道如何以字符串形式获取变量的值?
最佳答案
varsDef[k].value.toCSS()
应该是值
varsDef[k].name
应该是变量名
varsDef[k].toCSS()
不返回任何内容,因为它是一个变量-在CSS变量中不输出。