如何使用Javascript对Twitter对话中的所有@replies进行着色?

时间:2015-01-26 17:39:31

标签: javascript twitter

我正在尝试制作一个可以在Twitter对话中使用的greasemonkey用户文件 (为名称,用户名和每个@reply着色。)

首先,我希望推文中的所有文字和@replies都具有相同的颜色(黑色)。
我遇到的问题是,在Twitter对话中通常@replies不是黑色的(作为推文文本的其余部分 - 除了我不介意的网址),但还有其他颜色。
例如here,它们是灰色的。

我想将它们全部变为黑色。

使用Firefox的Inspector,我在页面源代码中注意到:

  • @reply是分开的(第一个位于<s>标记内,第二个位于<b>标记内。
  • 他们都属于同一个班级。我认为这是twitter-atreply pretty-link


所以,我试过这段代码:

var replies = document.getElementsByClassName('twitter-atreply pretty-link');
for (i = 0; i < replies.length; i++) {
  replies[0].style.color = 'black';
}

但是,它不起作用(它也不会产生任何错误) 如何使其有效?

1 个答案:

答案 0 :(得分:1)

问题在于,您正在更改包含您想要设置样式的元素的div样式,而不是自身元素。

目前,此页面使用'a.twitter-atreply.pretty-link'和元素作为包含要设置样式的文本的子项。所以你需要做的只是循环这些孩子,它应该工作。

var replies = document.getElementsByClassName('twitter-atreply pretty-link');
for (i = 0; i < replies.length; i++) {

  var children = replies[i].children;

  for (j = 0; j < children.length; j++) {
    children[j].style.color = 'black';
  }
} 
相关问题