我正在为某个站点创建样式表,使用javascript将类分配给某些元素。无论出于何种原因,某些'td'元素使用奇怪的类分配和内联样式,因此我将它们循环,清理并分配适当的类名称以在外部样式表中引用。Javascript:获取具有不正确样式定义的元素的内容
我没有访问网站本身(也没有管理权限来更改任何内容),因此我使用Firefox的Stylish和Greasemonkey(加上Adblock来处理原始样式表)。
这里负责的是的JS代码一小部分:
var cellStyleBg = cCell.style.backgroundColor;
if (cellStyleBg) {
switch(cellStyleBg) {
case 'white':
cCell.removeAttribute('style');
if (cCell.parentNode.nodeName == 'TR') {
cCell.parentNode.className = 'deadlineSet';
}
break;
...
的问题是存在这样的情况,这并不工作一个特殊情况:
<td class="td2h" style="background: dd97f0;">
正如你所看到的,颜色代码前面没有octotorp。我认为这是在这种情况下变量cellStyleBg为'null'的原因。
我试着(而不是'cCell.style.backgroundColor')使用'cCell.style'和'cCell.style.background',但它们不会返回纯文本供我解析。
我能做些什么来处理这种特殊情况?
我可能会丢失一些东西在这里所以我就发表评论,但你可以串连带'cellStyleBg'变量的'#'? 'if('#'+ cellStyleBg){' –
这正是问题 - cellStyleBg由于某种原因是空的,所以我无法对内容做任何事情。我怀疑原因是颜色代码无效,因此JS根本没有被视为价值。 – XNRL
啊,我明白了,我已经倒过来了......看起来你有一个很好的答案! –