Das geht schon, jedoch nur durch entsprechendes Parsen, d.h. Du musst den Code mit einer Auswahl geeigneter Regulären Ausdrücke aufsplitten und nach Hinzufügen der gewünschten Angaben wieder zusammenfügen.
Alles in allem ist es dabei vermutlich leichter, den HTML-Code sozusagen "von Hand" zu parsen. Hier ein kleiner Ansatz dazu:
var parsenodes = {
'a': [ 'href', 'target' ],
'table' : [ 'align', 'cellspacing', 'cellpadding' ],
'td' : [ 'align', 'valign' ],
'*': [ 'id', 'title', 'class', 'style', 'height', 'width' ]
}
function parseattr(node) {
var attr = '';
for (var k in node) {
if (k in parsenodes[node.nodeName.toLowerCase()] ||
k in parsenodes['*']) {
attr += ' '+k+'="'+node.k+'"';
}
}
}
function parse(node) {
var childnodes = '';
for (var c=0; c < node.childNodes.length; c++) {
if (node.childNodes[c].nodeType == 1) { textonly = false; }
childnodes += parse(node.childNodes[c]);
}
}
return '<'+node.nodeName.toLowerCase()+parseattr(node)+'>'+childnodes+
'<\/'+node.nodeName.toLowerCase()+'>';
}
Diese Funktion dient nur als Anschauungsobjekt und sollte nicht eingesetzt werden, ohne zumindest den Versuch unternommen zu haben, sie zu verstehen.
Gruß, LX
--
RFC 1925, Satz 8: Es ist komplizierter als man denkt.
RFC 1925, Satz 8: Es ist komplizierter als man denkt.