jQuery不同的div ids显示/隐藏

时间:2014-03-07 19:54:02

标签: javascript jquery arrays

我不是编码员,还在学习..

具有mysql查询列出的div个数。 我需要一个javascript代码,可以根据点击的按钮显示class="qform" div。

如果点击button-1,则在同一qformdiv

中显示课程id="tour-1"

我可以让第一个div工作,但是我无法为每个可能数量的div输出复制代码。

我的问题有解决方案吗?

<script>
$(document).ready( function(){
    $("#button-1").click(function () {
    $(".qform").slideToggle("fast");
    $("#book-1.book" ).toggleClass( "book-off" );
}); });
</script>

<style>
    .qform {display:none;}
</style>

<div id="tour-1" class="tour">
    some text
    <div class="qform">Full name, email x2, tour name 1</div>
    <div id="book-1" class="book"><a id="button-1" href="JavaScript:void()">book now</a></div>
    some text
</div>
<div id="tour-2" class="tour">
    some text
    <div class="qform">Full name, email x2,tour name 2</div>
    <div id="book-2" class="book"><a id="button-2" href="JavaScript:void()">book now</a></div>
    some text
</div>
<div id="tour-3" class="tour">
some text
    <div class="qform">Full name, email x2, tour name 3</div>
    <div id="book-3" class="book"><a id="button-3" href="JavaScript:void()">book now</a></div>
    some text
</div>
<div id="tour-4" class="tour">
some text
    <div class="qform">Full name, email x2, tour name 4</div>
    <div id="book-4" class="book"><a id="button-4" href="JavaScript:void()">book now</a></div>
    some text
</div>

2 个答案:

答案 0 :(得分:0)

您可以使用.parent()向上走DOM,然后在相应的元素上调用函数:

$(document).ready( function(){
        $("a").click(function () {
            $(this).parent().parent().find(".qform").slideToggle("fast");
            $(this).parent().parent().find(".book" ).toggleClass( "book-off" );
    }); 
});

jsFiddle:http://jsfiddle.net/fastfieros/3EcDn/

答案 1 :(得分:0)

看看:http://jsfiddle.net/stackolee/VpgfK/2/

如果你给锚标签一个类会更容易,因为这只有在tour div中没有​​任何额外的锚时才有效。

此外,退出<a href="Javascript:void()">内容。从jquery click函数返回'false'具有相同的效果。