[jQuery] Re: expand-refs

2008-06-01 Thread Wizzud

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


[jQuery] Re: expand-refs

2008-06-01 Thread Andy Chambers

On Jun 1, 9:01 am, Wizzud [EMAIL PROTECTED] wrote:
 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();

Yup.  That worked nicely after I'd fixed the funky backslashes in the
defs literal.

Cheers,
Andy