I'm trying to set an option with a specific value as selected (using jQuery). I've got a string:
var data = '<select><option value="1">A</option><option value="2">B</option><option value="3">C</option></select>';
Now I'm trying to find the option tag with value=2 and set it as selected
$(data).find('option[value=2]').attr('selected','selected');
It's not working. I also tried:
$(data).find('option').each(function(){
if($(this).val()==2){
$(this).attr('selected','selected');
}
});
which did not work either. How can I make this work?
Your code works fine, but of course you need to append it to the DOM to see the result. Here I used the appendTo()
[docs] method.
Example: http://jsfiddle.net/cqhGH/
// --v---------------make sure the DOM is loaded
$(function() {
var data = '<select><option value="1">A</option><option value="2">B</option><option value="3">C</option></select>';
$(data).appendTo('body').find('option[value=2]').attr('selected','selected');
});
Though an easier way is to use the val()
[docs] method.
Example: http://jsfiddle.net/cqhGH/1/
$(function() {
var data = '<select><option value="1">A</option><option value="2">B</option><option value="3">C</option></select>';
$(data).appendTo('body').val(2);
});