如何将选择器添加到现有规则?

时间:2016-03-11 21:50:14

标签: postcss

有没有办法使用Postcss API将选择器添加到现有规则? 像myRule.addSelector(".newSelector")

这样的东西

目前我必须这样做:

myRule.selector = myRule.selector ? myRule.selector + ", .newSelector" : ".newSelector";

1 个答案:

答案 0 :(得分:0)

您可以使用rule.selectors,这是一个getter的属性,它返回一个选择器数组(从rule.selector字符串生成),以及一个setter选择器数组(并覆盖rule.selector字符串)。

var sels = myRule.selectors; //save the getter returned array so we can modify it with push.
sels.push('.newSelector'); //push returns the new length not the array, that's why we had to save the array in sels.
myRule.selectors = sels; //the setter will join the array elements and overwrite myRule.selector

使用concat的更短版本(因为concat会返回一个新数组)。

myRule.selectors = myRule.selectors.concat('.newSelector');

请参阅PostCSS来源here