2012-07-19 61 views
1

創建HTML生成不同的結果,我有兩個jsFiddles:掙扎找出爲什麼追加原始HTML比與jQuery

第一的jsfiddle示出代碼這需要HTML和將它附加到我的ul元素。請注意,svg的'X'圖標出現。

我試圖用jQuery的元素創建技術來重寫這段代碼,但路徑從不出現。如果我用.text(「Hello」)替換附加的iconPath代碼,我會看到Hello出現。不過,我沒有看到兩個版本之間的CSS差異。

難道有人會對發生的事情有所瞭解嗎?

+0

這很有趣。當您將鼠標懸停在Firebug DOM視圖中的DOM元素上時,兩個版本中的SVG節點在懸空文本中標識不同。工作版本顯示他們被理解爲SVG,而在非工作版本中則不是。 – Pointy 2012-07-19 16:25:08

回答

2

它使用瀏覽器的innerHTML屬性將其解析爲HTML。 innerHTML無法解析SVG或其他非HTML內容...

我想這篇文章會給你的問題帶來一些影子。它有一個你正在尋找的例子。 jquery's append not working with svg element?

+0

但它**確實**在第一個小提琴中工作,這是*幾乎*相同的事情。 *編輯* - 好吧,我現在看到。 – Pointy 2012-07-19 16:25:40

+0

該線程有幫助,但也令人沮喪。將我的路徑元素聲明移動到svg元素的聲明中(作爲更長的HTML字符串)會導致元素出現。 jQuery無法正確地向svg追加路徑元素,但顯然可以附加文本。 – 2012-07-19 16:29:40