2013-07-23 67 views
1

我試圖用jQuery在TSPAN元素中編寫HTML符號(如°)。 在一個簡單的SPAN很容易:jQuery:在SVG中寫html符號tspan

$('#span_id').html('°'); 

隨着TSPAN這樣是不行的,如果我使用

$('#tspan_id').html('°'); 

沒有打印出來。

隨着

$('#tspan_id').text('°'); 

°打印,而不是°(顯然)

Look at the JSFiddle

我該怎麼辦?

+0

'$('#tspan_id')。html('°');'對我很好。 Firefox 22 –

+0

http://i.imgur.com/8upc9hD.png –

+0

您是否嘗試過使用chrome?我需要使用該瀏覽器 –

回答

2

可以使用.append()功能此

$('#tspan_id').empty().append('°'); 

FIDDLE

+0

+1由於某種原因可行!我猜這是在內部調用createTextNode和appendChild? – adeneo

+0

@adeneo它似乎是如此。在很多情況下'append'的工作方式不同於'.html()' – Spokey

+0

@Spokey謝謝 –

1

SVG節點沒有innerHTML屬性,因爲它們不是HTML,這意味着它們不能用jQuery的html()方法進行設置。

使用實體因此出了問題,但你可以在插入之前將它們轉換:

var txt = $('<div />').html('&deg;').text(); 
$('#tspan_id').text(txt); 

FIDDLE

+0

你的小提琴指向我的一個。 –

+0

我試過了,你的回答是正確的,但不是最短的一個......謝謝不管怎樣;) –

+1

@MaxMarkson - 改變了小提琴的鏈接,必須忘記保存? – adeneo