javascript - 如何在具有相同ID的标签之后添加wrapAll jquery或php
问题描述
php
<?php foreach ($forlop as $value) : ?>
<?php
$stringTitle = substr($value->getTitle(), 0, 1);
?>
<?php if(is_numeric($stringTitle)){
echo "<h3 id='other'>0-9</h3>";
} else{
echo "<h3 id=".strtolower($stringTitle).">".strtoupper($stringTitle)."</h3>";
}?>
<div class="item"><?php echo $value->getId(); ?></div>
<?php endforeach; ?>
<h3 id="c">C</h3>
<div class="item">1</div>
<div class="item">2</div>
<h3 id="d">D</h3>
<div class="item">3</div>
<div class="item">4</div>
<h3 id="e">E</h3>
<div class="item">5</div>
js
$('[id]').each(function (i) {
$('[id="' + this.id + '"]').slice(1).remove();
});
期望的结果
<h3 id="c">C</h3>
<div class="items-add">
<div class="item">1</div>
<div class="item">2</div>
</div>
<h3 id="d">D</h3>
<div class="items-add">
<div class="item">3</div>
<div class="item">4</div>
</div>
<h3 id="e">E</h3>
<div class="items-add">
<div class="item">5</div>
</div>
我希望将具有相同首字母缩写的产品组合在一起,我没有有效的解决方案。我想使用 jquery 向在循环中具有类项的标签添加一个包装器标签,有什么方法可以做到这一点吗?或有任何其他治疗让我知道你的想法。谢谢。
解决方案
你可以像这样在php中解决它:
<?php $oldTitle = ""; ?>
<?php foreach ($forlop as $value) : ?>
<?php
$stringTitle = substr($value->getTitle(), 0, 1);
?>
<?php if($oldTitle !== $stringTitle && $oldTitle !== ""){
echo "</div>"; // close items add tag
?>
<?php if(is_numeric($stringTitle)){
echo "<h3 id='other'>0-9</h3>";
} else{
echo "<h3 id=".strtolower($stringTitle).">".strtoupper($stringTitle)."</h3>";
}?>
<?php if($oldTitle !== $stringTitle){
echo "<div class='items-add'>";
$oldTitle = $stringTitle;
?>
<div class="item"><?php echo $value->getId(); ?></div>
<?php endforeach; ?>
推荐阅读
- python - Python Pandas 将列截断为特定长度而不剪切最后一个单词
- spring-boot - 部分更新而不从数据库中检索对象
- ubuntu - 为什么我来自 Docker Hub 的 ubuntu 映像附带 4.19 Linux 内核?
- visual-studio-2019 - 视觉工作室 2019 16.7.3
- python - 使用 redis 进行 Plotly Dash 服务器端缓存
- android - 如何在 Android 中访问 RecyclerView 之外的 TextView?
- angular - 我可以从事件绑定到自定义组件输出吗
- python - 如何从python中的列表中打印文本文件中的输出?
- c# - 多维数组作为方法的参数
- javascript - Javascript 添加空格和额外的字母