I tested with this html
t =
$('<html><head><style>.sssss{color:red}</style><script>function(){alert("hi")}</script></head><body>ssss</body></html>')

The return value is jquery object with 3 elements.
when I do t.get(0) it return style tag
when I do t.get(1) it return script tag
when I do t.get(2) it return just "ssss" the content of the body tag

So what happened is the jquery did not consider the html, head, body tags.
It just created style, script and the content of the body tag with the text
element.

so you can do like this
t.each(function(){
  if (this.tagName == 'STYLE'){
      $(this).remove();
      return;
  }
  if(this.tagName == 'SCRIPT'){
   $(this).remove();
 }
})

so it will remove the style and script tags.

cheers,
Prajwala

On Mon, Sep 29, 2008 at 11:24 PM, crrrum <[EMAIL PROTECTED]> wrote:

>
> Hello all,
>
> I have a webapp displaying email which can sometimes contain HTML
> message bodies.  I use jquery's .ajax method to grab an HTML message
> body and then put it into a div tag.  Problem is if the HMTL contains
> style or script tags I get unwanted results.
>
> I've tried $( html ).find( 'style' ).remove().  This will remove the
> the actual <style> and </style> tags but still leaves the style text
> itself inside.  I tried several variations but I just can't seem to
> get this to remove the actual style text with the style tags.  Any way
> to do this or will I have to do a bunch of custom search and replaces?
>
> Thanks in advance,
> cRRRum
>

Reply via email to