I have two radio buttons to toggle two alternative texts and it works:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
type="text/javascript"></script>
<style type="text/css">
.displayNone { display: none; }
</style>
</head>
<body>
<input type="radio" name="toggle" />A
<input type="radio" name="toggle" />B
<span class="A">A</span>
<span class="B displayNone">B</span>
<script type="text/javascript">
$('input[name=toggle]').change(function() {
$('.A, .B').toggleClass('displayNone');
})
</script>
</body>
</html>
Now I want to make it three radio buttons to toggle between three texts:
<input type="radio" name="toggle" />A
<input type="radio" name="toggle" />B
<input type="radio" name="toggle" />C
<span class="A">A</span>
<span class="B displayNone">B</span>
<span class="C displayNone">C</span>
The solution I’m thinking about looks too verbose. What would be the clean one?
One further approach:
JS Fiddle demo.
Edited to add, for the more up-to-date browsers, a pure CSS means of accomplishing the same:
JS Fiddle demo.
jQuery References:
addClass().change().eq().index().:radioselector.removeClass().siblings().CSS References:
E ~ Fgeneral-sibling combinator.:nth-child()pseudo-class.:nth-child()W3.org wiki entry.:nth-of-type()pseudo-class.:nth-of-type()W3.org wiki entry.