jQuery append用img替换图像

Mat*_*man 6 jquery svg image

所以我正在生成一个svg并且在svg中有<image>标签但是每当我附加<image>标签时,它都被替换为<img>

http://jsfiddle.net/d4s4p3az/

$('body').prepend('<image></image><br>');

$('body').append('img tags: '+$('body').children('img').length+'<br>');
$('body').append('image tags: '+$('body').children('image').length);
Run Code Online (Sandbox Code Playgroud)

那是怎么回事.

这是一个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();
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 2

imageHTML 中没有元素, HTML5HTML4中都没有。我希望浏览器只是处理常见的拼写错误。

image是一个SVG元素,因此不能直接将其放入 中body,它必须位于 SVG 上下文中。例如:更新的小提琴

$('body').prepend('<svg><image></image></svg><br>');

$('body').append('img tags: '+$('body').find('img').length+'<br>');
$('body').append('image tags: '+$('body').find('image').length);
Run Code Online (Sandbox Code Playgroud)

...这给了我们:

图片标签:0
图片标签:1