Untested...
function expand_refs (context) {
$(xref,context||document).each(function (i) {
var rpl = defs[$(this).attr(ref)]||0;
if(rpl){
var cntxt = $(rpl).insertAfter(this);
$(this).remove();
expand_refs(cntxt);
}
});
}
expand_refs();
On May 31, 11:43 pm, Andy Chambers [EMAIL PROTECTED]
wrote:
Hi,
I'm generating some code that looks like the snippet below. Embedded
within the html are some xref elements. I want to expand each one
according to the corresponding property of the defs object.
My naive attempt is as follows
function expand_refs () {
$(xref).each(function (i) {
$(this).replaceWith(defs[$(this).attr(ref)]);
});
}
...but this only replaces the first level (i.e. it doesn't expand the
D2488 xref). Can anyone help out?
Cheers,
Andy
?xml version=1.0 encoding=utf-8 standalone=yes?
html
head
title
/title
script type='text/javascript' src='/js/jquery.js'/script
script type='text/javascript' src='/js/openair.js'/script
script type='text/javascript'defs = { A : div id=\\'A\
\'xref ref=\\'D2488\\'/xref/div ,
D2488 : div id=\\'D2488\\'span id=\\'S2489\\'andy/spanxref
ref=\\'D2490\\'/xref/div ,
D2490 : div id=\\'D2490\\'span id=\\'S2491\\'chambers/span/
div };
/script
style type='text/css'/style
/head
body
div id='banner'
h1
/h1
/div
div id='content'
div id='A'
xref ref='D2488'/xref
/div
/div
/body
/html