Reputation: 98
Hello I am trying to use this code below. I like the code but I want the default to be DIV Area 1. I have the HTML code showing DIV Area 1 in the drop down menu but I want the Javascript to show DIV AREA 1 by default. What would be the code?
<script type="text/javascript">
$(document).ready(function(){
$('.box').hide();
$('#dropdown').change(function() {
$('.box').hide();
$('#div' + $('#dropdown').val()).show();
});
});
</script>
<form>
<select id="dropdown" name="dropdown">
<option value="0">Choose</option>
<option value="area1" selected="selected">DIV Area 1</option>
<option value="area2">DIV Area 2</option>
<option value="area3">DIV Area 3</option>
</select>
</form>
<div id="divarea1" class="box">DIV Area 1</div>
<div id="divarea2" class="box">DIV Area 2</div>
<div id="divarea3" class="box">DIV Area 3</div>
Upvotes: 0
Views: 3683
Reputation: 18339
A lot of complicated answers for a simple problem:
$('.box:gt(0)').hide();
I'd code it up like this:
$(document).ready(function(){
$('.box:gt(0)').hide();
$('#dropdown').change(function() {
$('.box:visible').hide();
if ($(this).prop('selectedIndex')>0)
$('.box').eq($(this).prop('selectedIndex')-1).show();
});
});
http://jsfiddle.net/lucuma/xNZWY/
If you remove the 1st option from your dropdown (since you are preselecting is it necessary?) it becomes a little simpler since we can remove the if
$(document).ready(function(){
$('.box:gt(0)').hide();
$('#dropdown').change(function() {
$('.box:visible').hide();
$('.box').eq($(this).prop('selectedIndex')-1).show();
});
});
Upvotes: 0
Reputation: 150253
$('.box').hide().first().show();
Or:
$('.box').hide().filter("#divarea1").show();
Put one of the above in the DOM ready event:
$(function(){ /*...*/ });
Or
$(document).ready(function(){ /* ... */ });
Full code: (It should answer you next question regarding how to show the selected div...)
$(document).ready(function() {
$('.box').hide().filter("#divarea1").show();
$('#dropdown').change(function() {
var selectedId= $(this).find(':selected').text().replace(/\s/g, "").toLowerCase();
console.log(selectedId);
$('.box').hide().filter('#' + selectedId).show();
});
});
Upvotes: 5