2015-06-09 53 views
0

如何应用多个文本?用文本它的工作原理:文本显示和隐藏按钮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,它会关闭并打开所有这些。

+0

有什么问题? –

+0

不要复制元素'ids',它们应该是唯一的。你可以通过遍历'$(this).closest('dl')。find('dd')。slideToggle('slow');' – billyonecan

+0

在你的问题中增加更多的单词 – Alex

回答

0

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

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

这将选择并切换dd的最接近您按下的按钮的预期实例。

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

这需要你实际上($this)按下按钮,找到与.closest('dl')父DL,然后查找DL与.find('dd')该实例中的DD。

+0

问题是,如果我有更多的“dl”,关闭并全部打开 – Lukbec

+0

您是否尝试过代码? '.closest('dl')'只能找到离你按下的按钮最近的dl,而不是全部。 –

+0

我的错误,我有在while循环中的脚本... 谢谢,它的工作原理 – Lukbec