【发布时间】:2017-09-22 20:35:36
【问题描述】:
我有一个内部有按钮的 DIVS 列表。默认情况下,所有按钮都是隐藏的。当我在 DIV 区域内单击时,应显示此单击的 DIV 内的当前按钮 (class='.db'),并且应隐藏所有以前单击/显示的按钮 (class='.dn')。换句话说,任何时候都应该只显示一个按钮(当前单击),而所有其他按钮都应该隐藏。
我想使用 vanilla Javascript 并在下面尝试过,但它不起作用。我觉得有一些小错误,但不知道在哪里。注意 - DIVS 和按钮没有自己的唯一 ID(它们只有相同的 CSS (.posted) 类。
PS - 也许最好不要添加这个 onClick="t();"到每个 DIV 并使用“addEventListener”函数,但这对我来说太多了; )
CSS:
.dn {display:none}
.db {display:block}
.posted {
height: 50px;
width: 100px;
background-color: green;
border: 2px solid red;
}
HTML:
<div class="posted" onClick="t();">
<button class="dn">Reply</button>
</div>
<div class="posted" onClick="t();">
<button class="dn">Reply</button>
</div>
<div class="posted" onClick="t();">
<button class="dn">Reply</button>
</div>
JAVASCRIPT:
function t()
{
var x=document.getElementsByClassName("posted"),i,y=document.getElementsByTagName("button");
for(i=0;i<x.length;i++)
{
x[i].y[0].className="dn";
};
x.y[0].className='db';//make sure the currently clicked DIV shows this button (?)
}
【问题讨论】:
-
你只需要在 js 中完成或使用 jquery。 JQuery 可以让你的工作更轻松。
标签: javascript html