i did realize after reading your post.... my bad for not paying closer attention to the  OP, wrapping it all first then moving out of p makes sense

mkmanning wrote:
This still won't move the optional caption text (see my post above).

On Jun 6, 4:21 pm, Charlie <charlie...@gmail.com> wrote:
  
One reason I follow this board is to learn how to do things I haven't encountered. I had no idea off top of my head how to do what you want but in quest to learn jQuery many of the problems on this board are great for training one's self. Thanks to team jQuery for such a good library and for excellent API docs and examples
solution is very straight forward and easy to test with the markup of <p> some text <img /></p>
//test example
$("img").each(function() {
       if ($(this).parent().is("p")){   
                   alert("My Parent is a P");
               $(this).insertBefore($(this).parent());                   
        }
     });
in your case you should be able to put following right after your .each(function (i) {:
if ($(this).parent().is("p")){                   
               $(this).insertBefore($(this).parent());                   
        }
///rest of your function
var a = $(this).attr('alt');............
Bruce MacKay wrote:Hi folks,
The following function takes an image tag (or table) that appears within a p tag container in the form< p> <img> text < /p>and wraps the image (and caption if a title is present) into a div for floating left, right, or centering.
My problem is that I don't know how to shift the processed image from within the p container to immediately before it (so that the created div is not within a p container)
I'd appreciate help in this next step.
Thanks,
Brucefunction fnDoImages() {
         $('img.imgposl,img.imgposr,img.imgposc,img.tblposl,img.tblposr,img.tblposc').each(function(i) {
                 var a = $(this).attr('alt');
                 var q = $(this).attr('class').substr(0,3);
                 var p = $(this).attr('class').substr(6);
                 var t = $(this).attr('title');           
                 var w = $(this).attr('width');
                 if (a.length=0) {
                           $(this).attr('alt',''+t+'');
                 }
                  $(this).wrap("<div class='buggybox clearfix' id='g"+i+"'></div>");
                 if (q=='tbl' && t.length>0) {
                  $(this).before("<p class='imgcaption' style='width:"+w+"px;'>"+t+"</p>");
                 } else if (t.length>0){
                  //$(this).after("<p class='imgcaption' style='width:"+w+"px;'>"+t+"</p>");
                 };
                  $("#g"+i).addClass("img"+p).css({width:w+'px'});
        }); 
}
    

  

Reply via email to