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(); });resultado deseado
<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>Quiero que se agrupen productos con las mismas iniciales, no tengo una solución efectiva. Quiero agregar una etiqueta contenedora a las etiquetas que tienen un elemento de clase en el bucle usando jquery. ¿Hay alguna forma de hacerlo? o tiene cualquier otro tratamiento déjeme saber acerca de sus ideas. Gracias.
Puedes resolverlo en php así:
<?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; ?>