2010-11-25 40 views
2

我的代碼是如何使多個.setAttribute一個單獨的元素

elem.setAttribute('style','background-color:' + l_DivBgcolor); 

,我想也是一個邊框顏色相同的增加將bgcolor的顏色.. 我的問題是我怎麼添加其他樣式設置爲bgcolor之後的當前樣式?

elem.setAttribute('style','border-color:' + l_DivBgcolor + '; background-color:' + l_DivBgcolor + ';'); 

,或者你可以:

我把三烯

elem.setAttribute('style','border-color:' + l_DivBgcolor ); 

第一的setAttribute之後,但它消除了BGCOLOR ANG只設置邊框的顏色..

回答

6

不要使用屬性爲了這。屬性在IE中不正確的實現,並且幾乎不是你所需要的。此外,分配給style屬性將消除現有的內聯樣式,包括由腳本設置的樣式。使用普遍支持style屬性,而不是:

elem.style.backgroundColor = l_DivBgcolor; 
elem.style.borderColor = l_DivBgcolor; 
1

是可以做到的請嘗試:

elem.style.display.borderColor = lDivBgcolor; 
elem.style.display.backgroundColor = lDivBgcolor; 
+1

在特殊模式,第一種方法將不會在IE 6或7或8的工作,同時也將消除其他瀏覽器中的現有內聯樣式。第二種方法是唯一明智的方法,除了通過插入`display.`來解決問題。 – 2010-11-25 16:20:09

+0

*點頭*我並不是說這是使用內聯樣式的方式,只需簡單地取出原始代碼並調整它以適合所問的問題,但您完全正確,不是這樣做的方式。後者......好吧,自從我這麼做以來已經有一段時間了,出於某種原因,我認爲它確實需要那裏的展示父母......不知道爲什麼。 – Arantor 2010-11-25 16:46:08

-1

只需將它們連接起來:

elem.setAttribute('style','background-color:' + l_DivBgcolor + ';border-color:' + l_DivBgcolor + ';'); 
-1

由於要更改的樣式屬性而不是元素的樣式屬性直接您可以連接的樣式在一個字符串

var atValue = 'border-color:' + l_DivBgcolor + ';'; 
atValue += 'background-color:' + l_DivBgcolor + ';'; 

elem.setAttribute('style', atValue); 
1

您可以添加到(+ =)或更換(=)與style.cssText內嵌樣式規則。

當追加時,原始樣式中存在的任何屬性都將替換爲新值。 新的屬性被添加,並且任何在原始中但不在替換中的都保留原樣。

elem.style.cssText+=';background-color:'+ l_DivBgcolor+';border-color:'+l_DivBgcolor; 
0

用途本

elem.setAttribute('style','background-color:' + l_DivBgcolor+ ' border-color:' + l_DivBgcolor); 
0

變量和硬編碼值:

element.setAttribute('style','top:' + t + '; left:' + l + '; width:' + w + '; height:' + h + ';'); 
element.setAttribute('style','top: 0; left: 0 ; right: 0; bottom: 0; opacity: 0.7;'); 
相關問題