Javascript:获取样式定义不正确的元素的内容
Javascript: get content of an element with incorrect style definition
我正在为某个站点创建一个样式表,使用javascript为某些元素分配类。无论出于何种原因,一些"td"元素使用奇怪的类赋值和内联样式,所以我循环它们,清理它们并分配正确的类名以在外部样式表中引用。
我无权访问网站本身(也无权更改任何内容),所以我使用 Stylish 和 Greasemonkey for Firefox(加上 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;">
如您所见,颜色代码前面没有八角形。我认为这就是在这种情况下变量cellStyleBg为"null"的原因。
我尝试(而不是'cCell.style.backgroundColor')使用'cCell.style'和'cCell.style.background',但它们没有返回纯文本供我解析。
我该怎么做才能处理这种特殊情况?
我认为唯一的方法是获取样式属性的原始值。你这样做是通过以下方式
//will output background: dd97f0
cCell.getAttribute('style');
如果需要,您可以使用此代码段将样式分解为键值对
//give "background: dd97f0", will output "background=dd97f0"
var stylePattern = /(.*?):([^;]*);?/g
while (match = stylePattern.exec(style)) {
console.log(match[1].trim() + "=" + match[2].trim());
}
相关文章:
- 在页面中找不到元素的正确位置.函数未考虑填充
- 元素值比较的结果不正确
- 情商不正确,第二个元素
- JQuery .index() 不返回元素的正确索引
- CSS 元素不会正确对齐
- jQuery - 'addClass' to HTML 元素 - 不起作用,但在 Chrome 中正确显
- 找不到此元素的正确 jQuery 选择器
- Dojo表单.如何显示关于不正确填写的表单元素的错误,如dijit方法validate()所做的
- Scriptaculous排序表和句柄的问题(元素排序不正确)
- 自定义元素的大小调整不正确
- 打印时绝对定位元素的位置不正确
- SVG 文本路径元素在使用 Javascript 生成时在 Firefox 中呈现不正确
- 引导过滤栏中的元素大小不正确
- 元素的同位素高度设置不正确
- JavaScript/HTML隐藏表单元素不能正确显示
- jQuery element.before()插入格式不正确的元素
- 在联系人表单上使用HTML5 localStorage,表单元素中的值不正确
- 为什么我的元素在页面加载时大小不正确?
- 隐藏元素不会;如果父元素具有特定的显示类型组合,则不能在IE8中正确地重新绘制页面
- jQuery为image标记创建了不正确的元素