Reputation: 3442
How can I update the value within the element if I click on any of the list items? Also, any tips on optimizing the js?
<select name="region" id="region">
<option value=""></option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<ul id="states">
<li class="a">a</li>
<li class="b">b</li>
<li class="c">c</li>
</ul>
<script>
$('#region').change(function(){
$('.stores').fadeOut();
$('#' + $(this).val()).delay(300).fadeIn();
});
$('#states > li').click(function(){
$('.stores').fadeOut();
$('#' + $(this).attr('class')).delay(300).fadeIn();
});
</script>
<p id="a" class="stores">a</p>
<p id="b" class="stores">b</p>
<p id="c" class="stores">c</p>
Upvotes: 1
Views: 1148
Reputation: 40096
use the following:
$("#states > li").click(function() {
$("option").removeAttr("selected");
var value = $(this).attr('class');
$("option[value='"+value+"']").attr("selected","selected");
});
Demo: http://jsfiddle.net/ZyVTH/1/
Upvotes: 2