2013-07-09 82 views
0

添加元素具有特定樣式這是我的代碼:使用的appendChild方法

(a=document).getElementsByTagName('body')[0].appendChild(a.createElement('div').style.cssText="someCssStyle"); 

這是行不通的! 但是當我寫僅此:

(a=document).getElementsByTagName('body')[0].appendChild(a.createElement('div')); 

它的工作原理,所以爲什麼我不能與特定的樣式添加的div元素? 我的工作出了什麼問題? 我想與特定的風格剛剛從URL植入在Chrome添加一個div元素使用:

javascript://all of my code goes here 

所以它必須很短。

回答

1

a.createElement( 'DIV')。style.cssText = 「someCssStyle」

這將返回其將被給定爲參數(a=document).getElementsByTagName('body')[0].appendChild(函數 「someCssStyle」。所以div永遠不會被添加。你能在這裏看到問題嗎?

您必須創建div,設置它的樣式,然後將其添加到正文中。像這樣

var div = document.createElement("div"); 
div.style.cssText = "someCssStyle"; 

document.body.appendChild(div); 
1

它不工作的原因是,在這裏:

...appendChild(a.createElement('div').style.cssText="someCssStyle") 

你傳遞一個字符串"someCssStyle")到appendChild,而不是元素的引用。 JavaScript中賦值的結果是右邊的值。

我不建議這樣做,但你可以使用the comma operator做到這一點:

(a=document).getElementsByTagName('body')[0].appendChild(d=a.createElement('div'),d.style.cssText="someCssStyle",d); 

需要注意的是你的代碼,上面的,都墮入The Horror of Implicit Globals

或者更合理,功能:

(function(){var a=document,d=document.createElement('div');d.style.cssText="someCssStyle";a.getElementsByTagName('body')[0].appendChild(d)})(); 

...其中除其他事項外墮入THoIG

+0

相同的樣式代碼權嗎? 'd.style.cssText =「height:100px,width:50px」'but not 'd.style.cssText =「height:100px; width:50px」' – user1283226

+0

@ user1283226:No,styles are separated with'; ',而不是','。逗號運算符是一個JavaScript事物。 –

+0

確定這樣的代碼將無法工作,因爲我有太多的風格,以申請 我想我會 非常感謝主席先生 – user1283226

相關問題