Jquery:隐藏/显示多个div,每个div上只有一个按钮
我想用每个div上的单个按钮隐藏/显示多个div(文本按钮正在更改) 其实我有这个,Jquery:隐藏/显示多个div,每个div上只有一个按钮,jquery,html,Jquery,Html,我想用每个div上的单个按钮隐藏/显示多个div(文本按钮正在更改) 其实我有这个, <a id="btnHideShow">Hide</a> <div id="divA"></div> $( "#btnHideShow" ).click(function() { if ($.trim($("#btnHideShow").text()) === "Show") { $( "#divA" ).show( "fast" );
<a id="btnHideShow">Hide</a>
<div id="divA"></div>
$( "#btnHideShow" ).click(function() {
if ($.trim($("#btnHideShow").text()) === "Show") {
$( "#divA" ).show( "fast" );
$("#btnHideShow").text("Hide");
} else {
$( "#divA" ).hide( "fast" );
$("#btnHideShow").text("Hide");
}
});
隐藏
$(“#btnHideShow”)。单击(函数(){
if($.trim($(“#btnHideShow”).text())==“Show”){
$(#divA”)。show(“fast”);
$(“#btnHideShow”).text(“隐藏”);
}否则{
$(“女主角”)。隐藏(“快速”);
$(“#btnHideShow”).text(“隐藏”);
}
});
它适用于单个div,我如何处理多个div,如下所示:
<a id="btnHideShow">Hide</a>
<div id="divA"></div>
<a id="btnHideShow">Hide</a>
<div id="divB"></div>
<a id="btnHideShow">Hide</a>
<div id="divC"></div>
<a id="btnHideShow">Hide</a>
<div id="divD"></div>
隐藏
隐藏
隐藏
隐藏
提前感谢假设您不能重构HTML代码,您可以使用jQuery的函数进行重构,它将获得下一个同级
$( "#btnHideShow" ).click(function() {
var button = $(this),
buttonSibling = button.next('div:first');
if (button.text()) === "Show") {
buttonSibling.show( "fast" );
button.text("Hide");
} else {
buttonSibling.hide( "fast" );
button.text("Show");
}
});
如果这始终是您的Dom结构,您可以使用.next(),还可以将您的ID更改为类 HTML
<a class="btnHideShow">Hide</a>
<div id="divA">test</div>
<a class="btnHideShow">Hide</a>
<div id="divB">test</div>
<a class="btnHideShow">Hide</a>
<div id="divC">test</div>
<a class="btnHideShow">Hide</a>
<div id="divD">test</div>
首先,在一个页面上对多个元素使用相同的id是不好的,因此替换
这也可以
(顺便说一句:在同一文档中避免使用具有相同id的多个元素!)
$(文档).ready(函数(){
$('a')。单击(函数(事件){
$(this.next().slideToggle(“fast”);
$(this).text($(this.text()===“隐藏”?“显示”:“隐藏”);
});
});
.集装箱{
边缘顶部:10px;
}
a{
背景:浅灰色;
边框:1px纯黑;
}
隐藏
这是A组
隐藏
这是B组
隐藏
我是C组
隐藏
这是D组
单击任何btnHideShow时,是否要隐藏所有(divA、divB、divC、divD)?您不应该对id'sThx使用相同的名称,但只有文本在更改,我在和之间有一些元素。抱歉,我没有了解到,只有文本在更改意味着…?如果我没有错,您希望在a(锚定)标记旁边显示/隐藏div。。我说得对吗?文本按钮在“隐藏/显示”中切换,但div没有隐藏。在标记和标记之间,我有一些标记,你是否使用与上面所写相同的html结构给所有潜水提供一个公共类,你想在锚点击时隐藏这些潜水
$(".btnHideShow").click(function () {
if ($.trim($(this).text()) === "Show") {
$(this).next().show("fast");
$(this).text("Hide");
} else {
$(this).next().hide("fast");
$(this).text("Show");
}
});
<a class="btnHideShow">Hide</a>
<div id="divA">
sdfsdfsdafsad
</div>
<a class="btnHideShow">Hide</a>
<div id="divB">
sdfdsfsdafsda
</div>
<a class="btnHideShow">Hide</a>
<div id="divC">
sdfsdfsdfsdfsdafsd
</div>
<a class="btnHideShow">Hide</a>
<div id="divD">
sdfsdsafasfsda
</div>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
$( ".btnHideShow" ).click(function() {
$(this).next('div').toggle('slow');
if($(this).html() == 'Hide'){
$(this).html("Show");
}else{
$(this).html("Hide");
}
});
})
</script>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('a').click(function (event) {
$(this).next().slideToggle( "fast");
$(this).text($(this).text() === "Hide" ? "Show" : "Hide");
});
});
</script>
<style>
.container {
margin-top : 10px;
}
a {
background : lightgray;
border : 1px solid black;
}
</style>
<head>
<body>
<div class="container">
<a id="btnHideShowA">Hide</a>
<div>This is DIV A</div>
</div>
<div class="container">
<a id="btnHideShowB">Hide</a>
<div>This is DIV B</div>
</div>
<div class="container">
<a id="btnHideShowC">Hide</a>
<div>This is DIV C</div>
</div>
<div class="container">
<a id="btnHideShowD">Hide</a>
<div>This is DIV D</div>
</div>
</body>
</html>