我有3个锚标签按钮和6个div,我想为每个按钮分配2个div,当单击时,两个指定的div都会相应地显示/隐藏。
我能够使用下面的代码隐藏/显示前3个div,但是对于接下来的3个div(图像部分),我的代码无法工作。
html:
//button section
<div class="row">
<div class="col-4 col-sm-2 col-lg-2">
<div class="mx-2"><a id="me" class="trans-btn selected" onclick="show('id1');">Widget</a></div>
<div class="mx-2"><a id="me" class="trans-btn" onclick="show('id2');">Widget</a></div>
<div class="mx-2"><a id="me" class="trans-btn" onclick="show('id3');">Widget</a></div>
</div>
//1st 3 divs
<div class="col-8 col-sm-5 col-lg-5">
<div class="mx-2" id="id1">
<h3>Tabs with soft transitioning effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
<div class="mx-2" id="id2" style="display:none;">
<h3>Tabs Different effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
<div class="mx-2" id="id3" style="display:none;">
<h3>Tabs most of effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
</div>
//next 3 divs(image section)
<div class="col-12 col-sm-5 col-lg-5 last-sec">
<div class="mx-2" id="id1"><img class="img-fluid" src="assets/images/shadow-img.png"/></div>
<div class="mx-2" id="id2" style="display:none;"><img class="img-fluid" src="assets/images/shadow-img.png"/></div>
<div class="mx-2" id="id3" style="display:none;"><img class="img-fluid" src="assets/images/shadow-img.png"/></div>
</div>
</div>js:
function show(elementId) {
document.getElementById("id1").style.display="none";
document.getElementById("id2").style.display="none";
document.getElementById("id3").style.display="none";
document.getElementById(elementId).style.display="block";
}当单击指定的按钮时,是否有其他方法显示/隐藏两个div?
发布于 2018-12-30 12:58:28
您正在使用相同的id两次。这是不允许的。我已经修改了你的HTML来纠正这个问题。我希望这能帮到你。
function show(elementId) {
let divs = Array.from(document.querySelectorAll("[id ^= 'did']"));
let imgs = Array.from(document.querySelectorAll("[id ^= 'iid']"));
divs.forEach(d=>{d.style.display="none"})
imgs.forEach(i=>{i.style.display="none"})
document.getElementById("d"+elementId).style.display="block";
document.getElementById("i"+elementId).style.display="block";
}<div class="row">
<div class="col-4 col-sm-2 col-lg-2">
<div class="mx-2"><a id="me" class="trans-btn selected" onclick="show('id1');">Widget1</a></div>
<div class="mx-2"><a id="me" class="trans-btn" onclick="show('id2');">Widget2</a></div>
<div class="mx-2"><a id="me" class="trans-btn" onclick="show('id3');">Widget3</a></div>
</div>
<!--1st 3 divs-->
<div class="col-8 col-sm-5 col-lg-5">
<div class="mx-2" id="did1">
<h3>Tabs with soft transitioning effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
<div class="mx-2" id="did2" style="display:none;">
<h3>Tabs Different effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
<div class="mx-2" id="did3" style="display:none;">
<h3>Tabs most of effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
</div>
<!--next 3 divs(image section)-->
<div class="col-12 col-sm-5 col-lg-5 last-sec">
<div class="mx-2" id="iid1"><img class="img-fluid" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/pin.png"/></div>
<div class="mx-2" id="iid2" style="display:none;"><img class="img-fluid" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/cat.svg#blackcat"/></div>
<div class="mx-2" id="iid3" style="display:none;"><img class="img-fluid" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/cat.svg#redcat"/></div>
</div>
</div>
发布于 2018-12-30 12:46:30
您应该考虑将jQuery包含到项目中。jQuery已经提供了这个功能。
在html标记中添加以下代码:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>然后,您将能够在本例中使用以下函数--切换函数,您可以在其中切换指定元素的类:
$( "#id1, #id2, #id3" ).toggle(
function() {
$( this ).addClass( "show" );
}, function() {
$( this ).removeClass( "hide" );
}
);请参阅jquery文档中的切换并单击events:
https://api.jquery.com/toggle-event/
并泛化了jQuery文档以找到其他类似的功能:
如果将引导程序添加到项目中,则显示和隐藏类将已经包含在项目中。并提供你想要的功能。
我希望这能帮到你。
发布于 2018-12-30 12:51:24
可以使用.querySelectorAll方法并隐藏所有这些元素。
function show(elementId) {
[].slice.call(document.querySelectorAll(".myBlock"),0).map(e=>e.style.display="none")
document.getElementById(elementId).style.display="block";
}//button section
<div class="row">
<div class="col-4 col-sm-2 col-lg-2">
<div class="mx-2"><a id="me1" class="trans-btn selected" onclick="show('id1');">Widget</a></div>
<div class="mx-2"><a id="me2" class="trans-btn" onclick="show('id2');">Widget</a></div>
<div class="mx-2"><a id="me3" class="trans-btn" onclick="show('id3');">Widget</a></div>
</div>
//1st 3 divs
<div class="col-8 col-sm-5 col-lg-5">
<div class="mx-2 myBlock" id="id1">
<h3>Tabs with soft transitioning effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
<div class="mx-2 myBlock" id="id2" style="display:none;">
<h3>Tabs Different effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
<div class="mx-2 myBlock" id="id3" style="display:none;">
<h3>Tabs most of effect.</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra
justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque
penatibus et magnis dis parturient montes.
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod
bibendum laoreet.
</p>
<a class="btn-warning" href="">Download</a>
</div>
</div>
//next 3 divs(image section)
<div class="col-12 col-sm-5 col-lg-5 last-sec">
<div class="mx-2" id="id1"><img class="img-fluid" src="assets/images/shadow-img.png"/></div>
<div class="mx-2" id="id2" style="display:none;"><img class="img-fluid" src="assets/images/shadow-img.png"/></div>
<div class="mx-2" id="id3" style="display:none;"><img class="img-fluid" src="assets/images/shadow-img.png"/></div>
</div>
</div>
https://stackoverflow.com/questions/53977666
复制相似问题