var foo = $("#foo"); foo.html('<br/><img /><br/>').find('img').attr("src","asdf.gif");
Tested and working. find( 'img' ) works for me. On Dec 16, 3:12 pm, ken <jqu...@kenman.net> wrote: > Scratch my "working" example -- the .find( 'img' ) evidently can't find the > image.... > > On Tue, Dec 16, 2008 at 4:50 PM, ken <jqu...@kenman.net> wrote: > > I am trying to do the following: > > > 1) create an IMG > > 2) assign an SRC to the IMG > > 3) wrap the IMG in <br/>'s > > 4) insert the resultant HTML into #foo > > > I have been hammering at this for awhile now, and am having problems; I've > > tried using wrap and some of the other content-manipulation methods, but I > > still can't get the implementation down to something short and sweet > > (referencing jQuery only once). This is the best I've got so far: > > > var html = jQuery( '<br/><img/><br/>' ) > > .find( 'img' ).attr( 'src', 'image.gif' ).end(); > > > jQuery( '#foo' ).html( html ); > > > I realize that I could use the literal expression in place of the "html" > > variable, but that's no better IMO. > > > What I originally started out doing, was something like this: > > > jQuery( '<img/>' ).attr( 'src', 'image.gif' ).wrap( '<br/><br/>' > > ).replaceAll( '#foo' ); > > > But, replaceAll removes the node (I only want to change its contents). > > > What I've noticed, is that the jQuery API provides alternative forms of 3 > > methods (that I don't see used very often): append, prepend, and replace. > > These 3 support both of the followng forms, and I believe they are 100% > > interchangeable: > > > jQuery( selector ).method( html ); > > jQuery( html ).methodTo( selector ); > > > However, .html(), which is arguably more popular, only has the 1st form, > > but not the second. Is there an alternative form for html() that I'm > > missing, or is this a hole in the API that apparently isn't wanted? > > > Thanks in advance!