我正在尝试编写一些 jQuery 代码,该代码将在单击链接时展开段落,并且展开后会显示另一个链接,该链接将允许折叠该段落。这些段落都是在 foreach 循环中生成的,我无法选择正确的段落,因为我不确定创建唯一 ID 传递回 jQuery 的最佳方法,因为它们在循环中。
这是我的 View 代码:
<? foreach ($e['comments'] as $comment) : ?>
<div class="comment">
<p class="collapsed">
<?=character_limiter($comment['comment'], 100) ?><br />
<a href="#" class="expand">Show More</a>
</p>
<p class="expanded">
<?=$comment['comment'] ?>
<a href="#" class="collapse" >Show Less</a>
</p>
</div>
<? endforeach; ?>
这是我到目前为止对 jQuery 的了解:
$(document).ready(function()
{
$("p.expanded").hide();
$("a.expand").click(function()
{
$(this).parent().hide();
return false;
});
});
单击“显示更多”时,我可以隐藏正确的
,但是我无法选择正确的“展开”段落,然后实现相反的折叠。
到目前为止,我的想法是,我需要以某种方式使相关元素具有独特的想法。 $comment 数组确实有一个“id”值,代码将附加到每个属性的 id 名称中,使它们独一无二,但我仍然对如何使用 jQuery 正确选择内容感到困惑。
最佳答案
ID 并不是定位单个元素的唯一方法 - 您可以使用各种方法定位当前 jQuery 元素周围的元素,就像使用 parent 一样。 .
您应该能够使用 siblings() 定位相应的“扩展” block :
$("a.expand").click(function()
{
$(this).parent().hide();
$(this).parent().siblings('.expanded').show();
return false;
});
关于php - 在循环内使用 JQuery 展开和折叠段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134205/