通过vanilla Javascript更改元素的样式

时间:2012-11-16 02:58:19

标签: javascript jquery css

<a href="" style="right:0px">right</a>

我想将其改为

<a href="" style="left:0px">right</a>

在jQuery中我可以做到这一点

$('a').attr('style','left:0px');

但是如何在不使用jquery的情况下在传统的javascript中执行此操作?

2 个答案:

答案 0 :(得分:2)

var elements = document.getElementsByTagName('a'),
    l = elements.length;

while ( l-- ) elements[l].style.left = '0px';

这是小提琴:http://jsfiddle.net/236pk/


如果您使用的是现代浏览器,则可以使用以下浏览器:

document.querySelectorAll('a').forEach(e => e.style.left = '0px');

这是小提琴:http://jsfiddle.net/236pk/24

答案 1 :(得分:0)

JavaScript答案已经存在,但是你将它标记为jQuery,同时提到你不想使用jQuery。也许你只是没有意识到jQuery在游戏中有多么简单,它可以在你使用JavaScript的任何地方使用,有0个不好的副作用。下面是使用jQuery执行此操作的简单方法,以及更少的代码。

$("a").css({ left: "0px", right: "" })

jsFiddle

我知道你展示了一个jQuery示例,但它不太正确,因此我猜你认为它会更容易在JavaScript中,因为你无法弄清楚jQuery的正确方法。只需在样式中包含右侧并将其值设置为空字符串,即可正确设置样式。

还有一点,虽然选择的答案显示了一种简单的方法,但它并不能解释你问题中的内容。即已经有style="right:0px;"的标签。如果你想使一切正确,使用他的公式,但添加一行:

var elements = document.getElementsByTagName('a'),
    l = elements.length;

while ( l-- ) {
    elements[l].style.left = '0px';
    elements[l].style.right= ''; // here in lies the added line, it removes the previously set "right"
}