2012-11-16 89 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