我想将两个带有css-properties的数组合并为一个new。如果已定义此样式,则新值应覆盖旧值。
第一个数组包含旧样式(它来自css类)
oldcss[0]='background-image: url(\"https://www.example.com/oldfile.jpg\")';
...
第二个数组包含新的样式)它来自css-inlinestyle)
newcss[0]='background-image: url(\"https://www.example.com/newfile.jpg\")';
...
对于测试样式(边框,字体,颜色等),此功能正常。此函数是循环所有具有内联样式属性的元素的一部分。
...
const resultObj = [...oldcss, ...newcss].reduce((a, str) => {
const [key, val] = str.split(/: ?/);
a[key] = val;
return a; }, {});
finalCSS['perfix-'+$(checkEl[i]).attr('id')]=Object.entries(resultObj).map(([key, value]) => `${key}: ${value}`);
...
如果是background-image属性,则此函数失败。
我收到:qazxsw poi而不是想要的qazxsw poi
我需要改变的是,它在这种情况下也适用吗?
非常感谢!
您必须删除background-image: url("https;}
,因为它将匹配前面标记的0到1之间。
所以你的正则表达式应该是这样的:background-image: url("https://www.example.com/newfile.jpg");}
问题在于如何生成键/值对。而不是简单的拆分,在每个冒号分裂,我建议通过正则表达式运行它:
?