As shown earlier by Hector. Here's another example: var foo = $("<div></div>"); // create an empty div element foo.html("<strong>Hello</strong>"); // set the html var html = foo.html(); // get the html
It's just in memory, all disconnected from the DOM, as it was never appended to the body or any other element in the document. You can also do fun things like var strong = $("strong", foo); // find strong elements within the context of the (in this case) disconnected DOM Element foo, instead of the default context, the current document - Richard On Mon, Nov 17, 2008 at 6:27 PM, cc96ai <[EMAIL PROTECTED]> wrote: > > if div foo is outside the DOM, how could we use jQuery to assign the > HTML into it ? and retrieve it back ? > > On Nov 17, 1:51 pm, "Hector Virgen" <[EMAIL PROTECTED]> wrote: > > The div will only be part of the body if you append it to the body. > > var div = document.createElement('div'); // not part of the dom yet > > div.setAttribute('id', 'foo'); // set an id, but it's still not part of > the > > dom > > document.body.appendChild(div); // now the div is part of the dom > > > > But I'm not sure how <script> tags are handled prior to dom insertion. > > > > -Hector > > > > On Mon, Nov 17, 2008 at 1:45 PM, cc96ai <[EMAIL PROTECTED]> > wrote: > > > > > how could I create the DIV outside the DOM ? > > > if I create a <div> inside the <body>, it is part of the DOM, isn't > > > it ? > > > > > On Nov 17, 12:32 pm, "Hector Virgen" <[EMAIL PROTECTED]> wrote: > > > > Will javascript be executed by jQuery#html() if the container is not > part > > > of > > > > the dom? > > > > -Hector > > > > > > On Mon, Nov 17, 2008 at 12:21 PM, cc96ai <[EMAIL PROTECTED]> > > > wrote: > > > > > > > That is my original design, however if the textarea contains the > > > > > javascript, it will execute the Javascript in div as well. > > > > > > > in the following example, the popup will come out when we try to > > > > > populate the textarea content into div. > > > > > that's why I am looking other way to parse the content. > > > > > e.g. > > > > > <textarea cols="50" rows="5" id="content"> > > > > > <a id="link" href="http://www.google.ca" target="_new" > border="2">test > > > > > link</a> > > > > > <img src="images/test.jpg" border="1" vspace="2" alt="test"> > > > > > <script> > > > > > alert("popup"); > > > > > </script> > > > > > </textarea> > > > > > > > Thanks, > > > > > > > On Nov 17, 12:01 pm, "Hector Virgen" <[EMAIL PROTECTED]> wrote: > > > > > > You can try assigning the value of the textarea to a hidden div. > Then > > > > > you'll > > > > > > have access to jQuery's functions on the HTML: > > > > > > var html = $('#content').val(); > > > > > > var div = $('<div />').css({display: 'none'}); > > > > > > div.html(html); > > > > > > div.find('a[target]').removeAttr('target'); > > > > > > > > Then replace the textarea with the html contents of the div: > > > > > > > > var filtered = div.html(); > > > > > > $(#content).val(filtered); > > > > > > > > -Hector > > > > > > > > On Mon, Nov 17, 2008 at 11:22 AM, cc96ai < > [EMAIL PROTECTED]> > > > > > wrote: > > > > > > > > > If we do the replace , it will replace all the tag's border & > > > target. > > > > > > > > > is there anyway it can replace on tag level ? > > > > > > > > > On Nov 17, 10:34 am, Eric Martin <[EMAIL PROTECTED]> wrote: > > > > > > > > If you just want the "string" value, how about: > > > > > > > > > > var content = $("#content").val(); > > > > > > > > content = content.replace(/ > target=(\'|\")_(new|blank)(\'|\")/, > > > ""); > > > > > > > > content = content.replace(/ border=(\'|\")\d+(\'|\")/, ""); > > > > > > > > > > -Eric > > > > > > > > > > On Nov 17, 10:18 am, cc96ai <[EMAIL PROTECTED]> > wrote: > > > > > > > > > > > I have a text area in the following > > > > > > > > > <textarea cols="50" rows="5" id="content"> > > > > > > > > > <a id="link" href="http://www.google.ca" > target="_new">test > > > > > link</a> > > > > > > > > > <img src="images/test.jpg" border="1" vspace="2" > alt="test"> > > > > > > > > > </textarea> > > > > > > > > > > > and I would like to strip out the hyperlink target, and > image > > > > > border, > > > > > > > > > and get the string of the HTML, > > > > > > > > > any idea on it? > > > > > > > > > > > I try the following, but it only remove the hyperlink in > the > > > page, > > > > > not > > > > > > > > > the hyperlink in textarea. > > > > > > > > > $("a").removeAttr("target"); > > > > > > > > > > > Can I load the textarea 's content in jquery, then do the > > > select/ > > > > > > > > > remove the attribute and return as string? > > > > > > > > > > > Thanks >