当用户点击切换按钮时,我有很多div可以隐藏/显示。我的切换按钮正在工作,但编写代码有一个更短的方法吗?应该是,当点击lblBtn1
时,只会dtxt1
滑动,如果点击lblBtn2
,则会显示dtxt2
。
$(document).ready(function(){
$("#lblBtn1").click(function(){
$("#dtxt1").slideToggle();
});
$("#lblBtn2").click(function(){
$("#dtxt2").slideToggle();
});
});
HTML
<lbl id="lblBtn1">+</lbl>Menu1
<div id="dtxt1">ASDFGH</div>
<lbl id="lblBtn2">+</lbl>Menu2
<div id="dtxt2">QWERTY</div>
答案 0 :(得分:1)
试试这个:
// Shorter $(document).ready
$(function () {
// Use attribute selector for both of your #id because they are like each other..
$("[id^=lblBtn]").click(function () { // or $("#lblBtn1, #lblBtn2").click(function () {
// Use next function to find next div to slideToggle because they are next to each other (siblings)
$(this).next('div').slideToggle();
});
});
答案 1 :(得分:0)
您可以使用id start with selector或tagname selector来定位$(this).next()
的所有标签元素,以定位所需的div元素:
$("[id^=lblBtn]").click(function(){//or $("lbl").click(function(){
$(this).next().slideToggle();
});
<强> working Demo 强>
答案 2 :(得分:0)
$('[id^="lblBtn"]').click(function(){
$(this).next().slideToggle();
});
这适用于所有标签
或尝试点击<lbl>
代码
答案 3 :(得分:0)
这将定位所需的#dtxt,即使它不直接位于#lblBtn旁边
$('[id^=lblBtn]').click(function() {
var num = $(this).attr('id').replace('lblBtn', '');
$('[id=dtxt' + num + ']').slideToggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<lbl id="lblBtn1">+</lbl>Menu1
<div id="dtxt1">ASDFGH</div>
<lbl id="lblBtn2">+</lbl>Menu2
<div id="dtxt2">QWERTY</div>