为什么这样做
$(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);
}
}
答案 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);