JQuery Prepend on SVG

时间:2014-04-04 19:57:33

标签: jquery svg

为什么这样做

$(parent)[0].appendChild(el);

这不?

$(parent)[0].prepend(el);

来自:

makeSVG('.svg-global', 'g', {id:'setores'}, true);

makeSVG('#setores',x.name, x.data,false);

功能本身:

function makeSVG(parent, tag, attrs,pre) {
            var el= document.createElementNS('http://www.w3.org/2000/svg', tag);
            for (var k in attrs)
                el.setAttribute(k, attrs[k]);
            if(pre){
                $(parent)[0].prepend(el);
            }else{
                $(parent)[0].appendChild(el);
            }
        }

1 个答案:

答案 0 :(得分:3)

Javascript没有prepend方法,jQuery没有

$(parent).eq(0).prepend(el);

$(parent).eq(0).append(el);

是jQuery方法,而appendChild是本机javascript方法。

当您使用[0]时,您将获得集合中的第一个基础本机javascript元素,而jQuery方法不适用于常规DOM节点。

不幸的是,本地节点没有prependChild方法,你必须使用insertBefore

parent.insertBefore(el, parent.firstChild);