我正在爲某個站點創建樣式表,使用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
啊,我明白了,我已經倒過來了......看起來你有一個很好的答案! –