I'm constructing a form. No problem there. Aside of a submit button, I have another button that, when clicked, adds another field to the form. I am attempting to use javascript (jquery) to do this. Needless to say I am not having any luck. I have tried many different methods, and this is the one I gave up at:
$("#snew").click(function () {
var container = $("#sblc").add("div");
var content = "<select> <option>Domestic</option><option>Tiger</option><option>Peeled Raw</option><option>Cooked Peeled Tail On<option></select><select> <option>1 lbs</option> <option>2 lbs</option><option>3 lbs</option></select>";
$(container).attr("class", "opt");
$(container).append(content);
$(container).appendTo("#sblc");
})
Here is the HTML that corresponds: http://pastie.org/3729304 (I couldn't figure out how to get the HTML to display properly on here. Sorry for the link. )
Whenever I try this, I end up either getting a completely white page, or nothing happens at all. Any help would be greatly appreciated.
Try something like below,
DEMO
I think you need to do:
This way, you create new
DIV
container andappend
it later (you've already done this)You have an error with how your appending.
http://jsfiddle.net/NYnYw/
This will work with the code you provided:
What about simply calling append once:
Your logic seems weird... You first declare
container
as$("#sblc").add("div")
which refers to a jQuery collection of objects that includes both#sblc
and as manydiv
as it can match. Is this really what you're trying to do?Then, you double wrap
container
in jQuery object which is unnecesary.The part that strikes me as unusual is
$(container).appendTo("#sblc")
. You're appending the double wrappedcontainer
, or#slbc + divs
to#slbc
?? Don't understand...You could try something like this: