0

我是 HTML 和 JavaScript 的新手,我有一个小问题我有 3 个 DIV

<div id="div1"> I'm div1 </div>
<div id="div2"> I'm div2 </div>
<div id="div3"> I'm div3 </div>

我有 3 个按钮,每个按钮都启用相应的 DIV 并禁用其他按钮一次只显示 1 个 DIV

<input type="button" name="Showdiv1" value="Show Div 1" onclick="showDiv1()" />
<input type="button" name="Showdiv2" value="Show Div 2" onclick="showDiv2()" />
<input type="button" name="Showdiv3" value="Show Div 3" onclick="showDiv3()" />

我搜索了多个解决方案,它们只显示如何启用,我不知道为什么,我无法禁用它们。

4

6 回答 6

0

有几种方法可以做到这一点,减少重复代码的步骤如下:

<div id=div1> I'm div1 </div>
<div id=div2> I'm div2 </div>
<div id=div3> I'm div3 </div>
<input type="button" name="Showdiv1" value="Show Div 1" onclick="showDiv('1')" />
<input type="button" name="Showdiv2" value="Show Div 2" onclick="showDiv('2')" />
<input type="button" name="Showdiv3" value="Show Div 3" onclick="showDiv('3')" />

JS:

function showDiv(num) {
    document.getElementById('div1').style.display='none';
    document.getElementById('div2').style.display='none';
    document.getElementById('div3').style.display='none';
    document.getElementById('div'+num).style.display='block'
}

小提琴

于 2013-11-05T13:43:58.097 回答
0

看看可见性选项。简而言之,在您的函数中,您应该调用getElementById(对于要修改的 div 的 if),然后将找到的元素样式的可见性属性更改为hidden(隐藏元素)或visible(显示它)。

于 2013-11-05T13:35:24.343 回答
0

只是隐藏 Div - 如果你想占用 Div 空间

function Hide()
{
document.getElementById('div1').style.visibility="hidden";
}

隐藏和移除 Div 元素的占用空间

    function Hide()
    {
    document.getElementById('div1').style.display="none";
    }
于 2013-11-05T13:34:55.420 回答
0
function showDiv1(){
    document.getElementById('div1').style.display = 'block';
    document.getElementById('div2').style.display = 'none';
    document.getElementById('div3').style.display = 'none';
}
于 2013-11-05T13:37:31.223 回答
0

这是显示/隐藏 HTML 的简单版本:

<input type="button" name="Showdiv1" value="div1" />
<input type="button" name="Showdiv2" value="div2" />
<input type="button" name="Showdiv3" value="div3" />
<div id="div1">I'm div1</div>
<div id="div2">I'm div2</div>
<div id="div3">I'm div3</div>

查询:

$('input[type="button"]').on('click', function () {
    var div = "#" + $(this).val();
    $('div').hide()
    $(div).show()
})

JSFiddle


更新:既然你在纯js中提到这里是方法

<input type="button" name="Showdiv1" value="div1" onclick="showDiv(this)" />
<input type="button" name="Showdiv2" value="div2" onclick="showDiv(this)" />
<input type="button" name="Showdiv3" value="div3" onclick="showDiv(this)" />
<div id="div1">I'm div1</div>
<div id="div2">I'm div2</div>
<div id="div3">I'm div3</div>

JS:

function showDiv(that) {
    var len = document.getElementsByTagName('div').length;
    for (var i = 0; i < len; i++) {
        document.getElementsByTagName('div')[i].style.display = "none";
    }
var val =  that.value;
 document.getElementById(val).style.display = "block";
}

JSFiddle

于 2013-11-05T13:40:41.033 回答
0

这是一个纯js的简单解决方案:

<div id=div1> I'm div1 </div>
<div id=div2> I'm div2 </div>
<div id=div3> I'm div3 </div>


<input type="button" name="Showdiv1" value="Show Div 1" onclick="showDiv('div1')" />
<input type="button" name="Showdiv2" value="Show Div 2" onclick="showDiv('div2')" />
<input type="button" name="Showdiv3" value="Show Div 3" onclick="showDiv('div3')" />

<script>
function showDiv(id) {
  var divs = document.querySelectorAll("div");

  for (var i = 0; i < divs.length; i++) {
      divs[i].style.display = "none";
  }
  var divToShow = document.getElementById(id);
  divToShow.style.display = "block";
}
</script>

JSFiddle

于 2013-11-05T13:51:05.300 回答