2010-12-20 47 views
3

未定義我想建立CSS顯示屬性中的JavaScript代碼:的JavaScript element.style在FF

var div = document.createElement('div'); 
    div.innerHTML = content; 
    div.childNodes[0].style.display = ''; 

它可以在IE瀏覽器,但在FF沒有。它說「樣式」未定義元素div。我如何在FF中做到這一點?

感謝

+1

'div.childNodes [0]'是什麼樣的節點? – Pointy 2010-12-20 17:40:56

回答

5

什麼是content?如果它以空格開頭,那麼將會有一個TextNode作爲第一個孩子,並且它們沒有樣式屬性(HTMLElementNodes做)。

您可以:

  • 環比孩子,直到你要麼到最後還是找到HTMLElementNode
  • 條上的空白,從content
  • 開關開始使用createElement和朋友,而不是的innerHTML
+0

感謝您的回覆,內容是HTML代碼,但似乎以空格開頭。 – ihorko 2010-12-20 17:49:13

+0

另外,元素遍歷規範http://www.w3.org/TR/ElementTraversal/定義了像'firstElementChild'這樣的屬性。雖然我不知道瀏覽器兼容性 – 2010-12-20 18:23:39

0

這也應該工作:

var div = document.createElement('div'); 
div.innerHTML = content; 
div.childElementCount && div.firstElementChild.style.display = '';