我如何在javascript(在Firefox中)获取treewalker textnode的bgcolor?

时间:2014-02-27 11:23:31

标签: javascript html firefox dom

我写了这个函数来获取HTML文档的所有文本节点:

function testit(root){
    w=document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);
    a=[]
    while (n=w.nextNode()) {
        a.push(n);
        console.log(n)
    }
}

我想得到文本的背景和前景颜色,我很确定我必须在父节点的某处找到这些属性,但我不知道如何。

我从未接触过javascript与DOM和firefox(以及XUL等)的组合,所以我非常感谢有用的链接,因为我认识到这个主题没有像python那样记录得好。

谢谢你的建设性答案!

1 个答案:

答案 0 :(得分:0)

好的,我已经找到了如何通过将我的代码更改为此来获取父元素的bgcolor和颜色属性:

function testit(root){
    w=document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);
    a=[]
    while (n=w.nextNode()) {
        a.push(n);
        console.log(n.textContent)
        console.log('bgcolor: '+window.getComputedStyle(n.parentElement).getPropertyValue('background-color'))
        console.log('color: '+window.getComputedStyle(n.parentElement).getPropertyValue('color'))
        console.log('------------')
    }
}

这是一种稳定的方法吗?

返回的bgcolor有时候是“透明的”,是不是说在这种情况下颜色是自动的bgcolor?