文本显示和隐藏按钮php/js


text show and hide with button php/js

如何应用多个文本?对于文本,它可以工作:

<dl>
    <dt>
        <img class="empfehlung-bild" style="max-width: 300px; height: auto; float: left; margin-right: 15px; margin-bottom: 15px;" src="<?php echo $bild; ?>" />
        <h1><?php echo $title; ?></h1>
        <p>
            <?php echo $text; ?>
        </p><br/>
        <button id="<?php echo $i; ?>" style="float:right;">Details</button><br/><br/>
    </dt>
    <dd style="float:left;">
        <h2><?php echo $secret_title; ?></h2>
        <button id="<?php echo $i; ?>" style="float:right;">X</button>
        <p>
            <?php echo $secret_text; ?>
        </p>
    </dd>
</dl>

脚本:

<script type="text/javascript">
    $(document).ready(function() {
        $("button").click(function() {
            $("dd").slideToggle("slow");
        });
    });
</script>

dd样式为display: none$i是一个计数器(while)

问题是,如果我有一个以上的dl,它关闭并打开所有的。

这将在整个页面上选择并切换所有 dd的实例。

$("button").click(function () {
  $("dd").slideToggle("slow");
});

这将选择并切换dd的预期实例,最靠近你按下的按钮。

$("button").click(function () {
  $(this).closest('dl').find('dd').slideToggle("slow");
});

它使用($this)实际按下的按钮,使用.closest('dl')查找父dl,然后使用.find('dd')查找dl实例中的dd。