2013-07-23 66 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