【发布时间】:2014-10-09 21:55:12
【问题描述】:
所以我正在生成一个 svg,并且在 svg 中有 <image> 标签,但是每当我附加 <image> 标签时,它就会被 <img> 替换
$('body').prepend('<image></image><br>');
$('body').append('img tags: '+$('body').children('img').length+'<br>');
$('body').append('image tags: '+$('body').children('image').length);
这是怎么回事。
这是一个 jQuery 的东西吗?我已经在 chrome 和 safari 中尝试过,结果相同。
编辑:
最后用这个函数将 svg 代码附加到 svg,其中第一个参数是 svg 的 jQuery 对象,第二个参数是要附加的 svg 代码。
function appendToSVG(svg,text){
text = svg.html()+text;
attributes = svg[0].attributes;
var attrs = '';
for (var i=0; i <= attributes.length-1; i++){
attrs += attributes[i].name+'="'+attributes[i].value+'" ';
}
svg.after('<svg '+attrs+'>'+text+'</svg>');
svg.remove();
}
【问题讨论】:
-
看起来浏览器会这样做。尝试使用原始 Javascript 做同样的事情:
div.innerHTML = "<image></image>" -
看起来
<image>只允许在<svg>内使用。