如何在 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>
我在使用 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>