1

使用谷歌浏览器,我不知道为什么这不起作用:(

// ==UserScript==
// @name       My Fancy New Userscript
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  enter something useful
// @match      http://*/*
// @copyright  2012+, You
// ==/UserScript==

document.getElementsByTagName('a').style.color='Red';
4

3 回答 3

4

因为它返回一个“类似数组”的元素集合,您需要单独操作这些元素。

document.getElementsByTagName('a')[0].style.color='red';

如果您预期有多个匹配项,您将在循环中操作。

var aList = document.getElementsByTagName('a');

for (var i = 0, len = aList.length; i < len; i++) {
    aList[i].style.color='red';
}

当然,对于这个简单的操作,您可能会使用 CSS 而不是 JS。

如果您只想要链接,您可以使用document.links而不是getElementsByTagName.

于 2012-10-18T19:16:58.303 回答
1

document.getElementsByTagName返回一个NodeList。您必须执行以下操作:

var anchors = document.getElementsByTagName('a'), i, j;
for (i=0, j=anchors.length; i<j; i++) {
    anchors[i].style.color = 'red';
}
于 2012-10-18T19:18:14.390 回答
0

getElementsByTagName返回一个NodeList,而不仅仅是一个元素。您需要遍历并编辑每个style.color.

于 2012-10-18T19:17:20.193 回答