如何在 foreach 中读取更多文本

How to read more text in foreach

我在使用 Yii2 框架,我想阅读 foreach 中每个元素的更多文本。如下: 我的 foreach:

<?php foreach ($queryUserContractor as $key => $value): ?>
...
<p class="text_content_rating" id="<?= $value->user_id ?>"><?= AcpHelper::shortDesc(RatingContractor::getContentRatingLatestById($value->user_id), 400) ?>
                                                <a class="text_load_more" id="text_load_more">Read more</a></p>
                                            <p class="text_content_rating_full display_none"><?= RatingContractor::getContentRatingLatestById($value->user_id) ?>
                                                <a class="text_hide" id="text_hide">Hide</a></p>
<?php endforeach; ?>

我的 JS:

$(document).ready(function () {
    $(document).on('click', '#text_load_more', function (e) {
        $(".text_content_rating_full").removeClass("display_none");
        $(".text_content_rating").addClass("display_none");
    });
    $(document).on('click', '#text_hide', function (e) {
        $(".text_content_rating_full").addClass("display_none");
        $(".text_content_rating").removeClass("display_none");
    });
});

我的css:

p.display_none {
        display: none;
    }

帮帮我,谢谢。

你可以给你的元素一些 outer div 然后每当用户点击 a 标签检查它是否有 text_load_more 取决于这个 add/remove display_none class 来自 p 个标签。

演示代码 :

$(document).on('click', '.text_load_more ,.text_hide', function(e) {
  var selector = $(this).closest(".outer")
  //check if a has class
  if ($(this).hasClass("text_load_more")) {
    //remove class from full and add class to rating
    selector.find(".text_content_rating_full").removeClass("display_none");
    selector.find(".text_content_rating").addClass("display_none");

  } else {
    selector.find(".text_content_rating_full").addClass("display_none");
    selector.find(".text_content_rating").removeClass("display_none");
  }
});
.display_none {
  display: none
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<!--added outer div-->
<div class="outer">
  <p class="text_content_rating" id="<?= $value->user_id ?>">abcdclhehclecece
    <a class="text_load_more">Read more</a></p>
  <p class="text_content_rating_full display_none">yxhcgjjechgekjcehk
    <a class="text_hide">Hide</a></p>
</div>
<div class="outer">
  <p class="text_content_rating" id="<?= $value->user_id ?>">abcdclhehclecece222
    <a class="text_load_more">Read more</a></p>
  <p class="text_content_rating_full display_none">yxhcgjjechgekjcehk22
    <a class="text_hide">Hide</a></p>
</div>