case 'tag':
if (c.name === 'script' || c.name === 'object' || c.name === 'iframe' || c.name === 'link') {
// TODO put placeholders instead
- remove.unshift(i)
+ remove.unshift(i) // add to beginning so they are removed last first
continue
}
- // TODO create in correct namespace
- c.el = parent.ownerDocument.createElement(c.name)
+ if (c.namespace === 'svg') {
+ c.el = parent.ownerDocument.createElementNS('http://www.w3.org/2000/svg', c.name)
+ } else if (c.namespace === 'mathml') {
+ c.el = parent.ownerDocument.createElementNS('http://www.w3.org/1998/Math/MathML', c.name)
+ } else {
+ c.el = parent.ownerDocument.createElement(c.name)
+ }
ref1 = c.attrs
for (k in ref1) {
v = ref1[k]
}
}
}
- results = []
+ // these are in reverse order so we remove highest indexes first
for (i = 0; i < remove.length; i++) {
- // FIXME this deletes the wrong node when siblings are removed
index = remove[i]
- results.push(tree.splice(index, 1))
+ tree.splice(index, 1)
}
- return results
}
function traverse_tree (tree, cb) {