Doo Dah
Doo Dah

Reputation: 4029

Set value of input html string with jquery

I have snippet of HTML in a string like this:

var htmlString = '<input type="text" id="someID" name="someID">';

How do I, with jQuery, set its value so that the HTML ends up like this:

'<input type="text" id="someID" name="someID" value="newValue">';

Thanks, Scott

Upvotes: 7

Views: 22159

Answers (4)

Diode
Diode

Reputation: 25135

$(htmlString).attr("value", "newValue");

But this will return jQuery object, not string. You can add it to DOM.

$(htmlString).attr("value", "newValue").appendTo("body"); // you can give any element instead of body

EDIT :

You can use @idor_brad's method. That is the best way or

var htmlString = '<input type="text" id="someID" name="someID">';

var $htmlString = $(htmlString);
$htmlString.attr("value1", "newValue1");
$htmlString.attr("value2", "newValue2");
$htmlString.attr("value3", "newValue3");

console.log($htmlString.get(0).outerHTML);

or

var htmlString = '<input type="text" id="someID" name="someID">';

var $htmlString = $(htmlString);
$htmlString.attr("value1", "newValue1");
$htmlString.attr("value2", "newValue2");
$htmlString.attr("value3", "newValue3");

console.log($("<div>").append($htmlString).html());

Upvotes: 7

egbrad
egbrad

Reputation: 2407

You just want to manipulate the string, right? There are a lot of ways to skin this cat, but

var newString = htmlString.replace('>', ' value="newValue">');

Upvotes: 4

Shreedhar
Shreedhar

Reputation: 5640

After the dom ready, append your input to body and then grab the input with id = "someID" and set its value to newValue

   $(document).ready(function(){
       $("body").append(htmlString);
       $("#someID").val("newValue");
    });

Upvotes: 1

Curtis
Curtis

Reputation: 103348

You would first need to add your element to the DOM (ie to your web page). For example:

$(".container").append(htmlString);

Then you can access your input as a jquery object and add the value attribute like so:

$("#someID").val("newValue");

-- See Demo --

Upvotes: 6

Related Questions