2012-06-12 69 views
0

我正在寻找更改其他链接的链接,当他们被点击。例如,如果用户点击A-Z,它会改变0-9的颜色。Javascript OnClick更改各种元素链接颜色

<a href="" id="list_users_title" onclick="document.getElementById('oneline a').style.color = '#414042'; document.getElementById('list_users_title a').style.color = '#B91200';">A-Z</a> 
<a href="" id="oneline" onclick="document.getElementById('oneline a').style.color = '#B91200'; document.getElementById('list_users_title a').style.color = '#414042';">0-9</a> 

我可以用颜色做,但是这覆盖了我仍然想使用的a:hover。

任何帮助,将不胜感激

回答

0

当您使用getElementById你应该传入ID你想要的元素的。因此,请执行document.getElementById('oneline')而不是document.getElementById('oneline a')

编辑

如果您不希望覆盖的风格,用onclick事件添加一个类(比如“点击按ONELINE”)的元素,而不是直接将样式。然后使用样式表来定义这样的一些规则:

#oneline.clicked-by-oneline { color: #414042; } 
#list_users_title.clicked-by-oneline { color: #B91200; } 

使用级联控制这些样式替代究竟是如何相互作用的。

+0

如何将我的风格一:链接的颜色,而不是元素的颜色? – Storm3y

+0

我可能会对该元素应用一个类,然后使用CSS来控制样式,而不是直接应用样式。 – sczizzo

+0

另外,你的'a'标签已经有'oneline'id,所以'document.getElementById('oneline')'已经指向了锚点。 – sczizzo

1

你的问题是,在JavaScript的帮助下,您正在向a标记添加内联CSS。内联CSS的优先级高于style标记中的优先级。

这里的解决方案 -

<div id='style'></div> 

<a href="" id="list_users_title" onclick="document.getElementById('style').innerHTML = '<style>ADD CSS HERE</style>';">A-Z</a> 

这不会增加内嵌CSS