Javascript 显示和隐藏HTML文本的3个按钮
有三个按钮(Javascript 显示和隐藏HTML文本的3个按钮,javascript,jquery,html,Javascript,Jquery,Html,有三个按钮(按钮1、按钮2和按钮3)和三个文本(文本1、文本2和文本3)。每个文本都在其相应按钮的正下方。想象一下 [button 1] ..text 1.. [button 2] ..text 2.. [button 3] ..text 3.. 应适用以下条件: 当文档加载时,所有文本都应隐藏 单击隐藏了相应文本的按钮时,应显示该文本 单击显示相应文本的按钮应隐藏该文本 在任何给定时间,最多应显示一个文本 如果显示一个文本,我单击相应的按钮,该文本将被隐藏。例如,如果我单击按钮1,则
按钮1
、按钮2
和按钮3
)和三个文本(文本1
、文本2
和文本3
)。每个文本都在其相应按钮的正下方。想象一下
[button 1]
..text 1..
[button 2]
..text 2..
[button 3]
..text 3..
应适用以下条件:
- 当文档加载时,所有文本都应隐藏李>
- 单击隐藏了相应文本的按钮时,应显示该文本李>
- 单击显示相应文本的按钮应隐藏该文本李>
- 在任何给定时间,最多应显示一个文本李>
- 如果显示一个文本,我单击相应的按钮,该文本将被隐藏。例如,如果我单击按钮1,则显示文本1。我再次点击按钮1,文本1应该是隐藏的李>
var show1 = false;
var show2 = false;
function showDearPresidentText() {
if(show1 == false && show2 == false) {
document.getElementById("text1").style.display="block";
document.getElementById("text2").style.display="none";
show1 = true;
}
else if(show1 == true && show2 == false) {
document.getElementById("text1").style.display="none";
document.getElementById("text2").style.display="none";
show1 = false;
}
else if(show1 == false && show2 == true) {
document.getElementById("text1").style.display="block";
document.getElementById("text2").style.display="none";
show1 = true;
}
}
function showDearReaderText() {
if(show1 == false && show2 == false) {
document.getElementById("text1").style.display="none";
document.getElementById("text2").style.display="block";
show2 = true;
}
else if(show1 == true && show2 == false) {
document.getElementById("text1").style.display="none";
document.getElementById("text2").style.display="block";
show1 = true;
}
else if(show1 == false && show2 == true) {
document.getElementById("text1").style.display="block";
document.getElementById("text2").style.display="block";
show1 = false;
}
}
我们不是来为您编写完整的代码示例的,但这里有一个有用的提示:获取
方法体中单击按钮的索引。单击()
方法并隐藏除具有相同索引的文本元素之外的所有文本元素
更新:以防有人对我解决这个问题的方法感兴趣,下面是示例函数(假设所有按钮都有类“button”,所有文本都有类“text”):
请尝试下面的修改代码。这是示例代码,但您可以了解如何解决您的问题
$(文档).ready(函数(){
$('.btn')。单击(函数(){
$('.btn')。每个(函数(){
$(this.next().hide();
});
$(this.next().toggle();
});
});
按钮1
按钮的1个文本
按钮2
按钮的2个文本
按钮3
按钮的3个文本
尝试使用.css()
,将上下文设置为此
在中单击处理程序,.not()
$(“按钮”)。单击(功能(e){
var div=$(“+div”,本);
div.css(“显示”,div.css(“显示”)=“块”?“无”:“块”);
$(this.nodeName+“+div”).not(div).css(“display”,“none”);
})
div{
显示:无;
}
钮扣{
显示:块;
}
按钮0
文本0
按钮1
文本1
按钮2
文本2
按钮3
text 3
这里有一个使用引导和jquery的解决方案
Javascript:
//使用jQuery
//单击按钮时显示文本
$(“按钮”)。单击(函数(){
$(“p”).addClass(“隐藏”);
开关(this.id){
案例“按钮-1”:
$(“p#text-1”).removeClass(“隐藏”);
打破
案例“按钮-2”:
$(“p#text-2”).removeClass(“隐藏”);
打破
案例“按钮-3”:
$(“p#text-3”).removeClass(“隐藏”);
打破
违约:
打破
}//闭合开关
}); //结束选项卡单击
显示文本1
文本1
显示文本2
文本2
显示文本3
文本3
试试这个:
根据您的要求更改CSS:
$(文档).ready(函数(){
$(“#按钮1”)。单击(函数(){
$(“#text1”).toggle();
$(“#text2”).css(“显示”、“无”);
$(“#text3”).css(“显示”、“无”);
});
$(“#按钮2”)。单击(函数(){
$(“#text2”).toggle();
$(“#text1”).css(“显示”、“无”);
$(“#text3”).css(“显示”、“无”);
});
$(“#按钮3”)。单击(函数(){
$(“#text3”).toggle();
$(“#text1”).css(“显示”、“无”);
$(“#text2”).css(“显示”、“无”);
});
});
文本1
文本2
文本3
添加完整的代码,尝试解决问题我在纸上写了三个按钮的逻辑。但我在代码中也尝试了两个按钮。在这里。可以在问题中包含html
?是的。我能行。当然。看,我的代码肯定能用……这不一定是我想要的。不过,这是有帮助的。在任何给定时间,我最多只希望显示一个文本。您可以使用显示和隐藏,而不是设置css
显示。感谢您的回复。然而,这也不是我想要的。我们就说有按钮1。我点击按钮,它显示文本1。但当我再次单击按钮1时,我希望文本1被隐藏。@Tushar“您可以使用显示和隐藏而不是设置css显示。”是的。任何一种方法都应该返回类似的结果
$('.button').click(function() {
index = $('.button').index(this);
$('.text').hide();
$('.text:eq(' + index + ')').show();
});