当我点击任何链接时,对应的div显示出来 但是当我点击下一个链接时,新点击的潜水显示以及之前点击的潜水。我希望普通的div能够隐藏起来。新的发展请有人帮助我........
这是链接的html代码:
<a class="hide" onclick="showdiv('firstimpression'); " href="#">First Impression</a>
<a class="hide" onclick="showdiv('speaking'); " href="#">Speaking</a>
<a class="hide" onclick="showdiv('eating'); " href="#">Eating</a>
<a class="hide" onclick="showdiv('taste'); " href="#">Taste</a>
<a class="hide" onclick="showdiv('saliva'); " href="#">Saliva</a>
<a class="hide" onclick="showdiv('cleaning');" href="#">Cleaning</a>
<a class="hide" onclick="showdiv('nighttime');" href="#">Night Time</a>
<a class="hide" onclick="showdiv('singledenture');" href="#">Single Denture</a>
<a class="hide" onclick="showdiv('soreness');" href="#">Soreness</a>
<a class="hide" onclick="showdiv('burning');" href="#">Burning</a>
<a class="hide" onclick="showdiv('adapting');" href="#">Adapting</a>
<a class="hide" onclick="showdiv('futureconsideration');" href="#">Future Consideration</a>
<a class="hide" onclick="showdiv('conclusion');" href="#">Conclusion</a>
这些是div:
<div id="firstimpression" class="patientinfodivs">
<div id="speaking" class="patientinfodivs">
.....等等
Javascript代码
<script type="text/javascript">
function showdiv(id){
document.getElementById(id).style.display = "block";
}
</script>
答案 0 :(得分:11)
尽管我讨厌创建全局变量,但它们有时会非常方便......
var _hidediv = null;
function showdiv(id) {
if(_hidediv)
_hidediv();
var div = document.getElementById(id);
div.style.display = 'block';
_hidediv = function () { div.style.display = 'none'; };
}
这可以防止你不必要地搜索div来找到你应该隐藏的那个。
编辑:扩展@ StevenRoose的建议:
var _targetdiv = null;
function showdiv(id) {
if(_targetdiv)
_targetdiv.style.display = 'none';
_targetdiv = document.getElementById(id);
_targetdiv.style.display = 'block';
}
答案 1 :(得分:0)
你需要在showdiv()中首先使你的所有元素显示=“无”; 然后选择元素display =“block”;
你也可以用两个函数hidealldivs()来组织它,它会隐藏所有的div和当前的showdiv(),它们将显示为已选中。
然后onClick一个接一个地调用它们
onclick="hidealldivs(); showdiv('eating')"
答案 2 :(得分:0)
你需要最初隐藏你的div。在StyleSheet中或内联。
.patientinfodivs {
display: none;
}
<div id="firstimpression" class="patientinfodivs" style="display: none;">
答案 3 :(得分:0)
这是一个不使用全局的版本(除了函数本身)。变量保存在函数对象上:
function showdiv( id ) {
if( showdiv.div ) {
showdiv.div.style.display = 'none';
}
showdiv.div = document.getElementById(id);
showdiv.div.style.display = 'block';
}