views:

89

answers:

2

I have an input box created by jquery like so:

val input = $('<input class="pick_date" ... />')

but the .html() method on input does not return the string entered inside the $. does anyone know why?

edit: Ah, I understand the problem. Is there a way to get the html representation of the entire input box and not just the entry?

A: 

I think maybe you are looking for append():

$("div#form").append('<input class="pick_date" ... />');
pifantastic
Might want to additionally read this: http://stackoverflow.com/questions/268490/jquery-document-createelement-equivalent
pifantastic
+1  A: 

you are passing <input /> which is a self-closing tag.

If you were passing <input>Html here</input> (which is valid XML but not HTML to my knowledge), you could retrieve the "Html here" part with the .html() function like so:

var input = $('<input class="pick_date">Html here</input>');
alert(input.html());

In addition to your edited question:

$('<input />').outerHtml();

this should work.. :)

with this ofcourse (source):

(function($) {
    $.fn.outerHTML = function() {
        return $('<div>').append( this.eq(0).clone()).html();
    };
})(jQuery)
Ropstah
see updated answer
Ropstah
Isn't outerHtml a plugin (or IE only)? It's not part of jquery.
seth
true, i forgot to paste the code which makes it a jQuery plugin :)
Ropstah