php - 在循环内使用 JQuery 展开和折叠段落

标签 php javascript jquery codeigniter

我正在尝试编写一些 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/

相关文章:

javascript - 在页面加载时随机定位 div

jquery - Ajax 加载程序未在 Google Chrome 中显示

javascript - 如何在不使用循环的情况下按固定数量更改每个输入元素的值?

php - 多列 Symfony Doctrine 上的多词搜索

php - 根据比较结果弹出

php - 使 NAMESPACE 声明有条件?

javascript - 如何从 javascript (GPS) 显示 jQuery 移动对话框

javascript - Onload 不起作用 : Uncaught reference error, 函数未定义

php - mySQL - 如何集成此 "last 3 days only"查询

jquery - 在 Rails 中,使用 Jquery/Ajax 更新 div