2012-11-16 62 views
3
<a href="" style="right:0px">right</a> 

我想它变成通过香草的JavaScript更改元素的风格

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

在jQuery中我能做到这一点

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

但我怎么能做到这一点在传统的JavaScript不使用jQuery?

+0

任何原因你不在你的CSS这样做? –

+1

jQuery是JavaScript。你的意思是问你如何使用股票JavaScript修改样式而不使用任何库? – Dai

+3

你链接的小提琴似乎有点不相关。 –

回答

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

+0

您应该删除“右”样式属性。在这种情况下,'left'覆盖'right'是一个令人高兴的事故。 http://jsfiddle.net/236pk/1/ – aaaidan

0

JavaScript的答案已经存在,但你标记了jQuery,同时提到你不想要我们e jQuery。也许你只是没有意识到在使用jQuery方面JavaScript是多么的简单,并且它可以在你使用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" 
} 
+0

还提到,*不使用jQuery *。 :-) – Abhilash

+0

@Abhilash我知道,但它被标记为[jQuery],我只是觉得他可能不需要,因为他还不明白jQuery是如何让JavaScript变得简单,并且它几乎可以在任何使用JavaScript的应用程序/网站中使用。 – SpYk3HH