Ich habe ein Array von Strings mit variabler Größe.Wenden Sie CSS auf eine Anzahl von Divs an, die mit PHP definiert sind.
Für jedes Element im Array möchte ich separat die Größe des darin enthaltenen Textes ändern können.
Momentan funktioniert es nur im ersten Satz.
Ich würde so etwas wie
#trim <?= $i ?> {}
der Lage sein, jeden Satz zu kontrollieren, aber diese doesent Arbeit.
Was wäre der optimale Weg, das zu tun?
Mein Code ist folgende:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<style>
#trim {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
position: relative;
padding-left:10px;
width: 50px;
}
#trim:after {
content: '+';
right: 0;
position: absolute;
}
#trim.full {
width: auto;
height: auto;
white-space: normal;
}
#trim.full:after {
display: none;
}
</style>
<?php
$array=['first sentence','sencond sentence','third sentence'];
$i=0;
foreach ($array as $answer)
{
?>
<p id="trim"><?= $answer ?></p>
<?php
$i++;
}
?>
<script>
$('#trim').click(function() {
$(this).toggleClass('full');
});
</script>
Ihre PHP-Schleife scheint 'id = "trimmen"' für alle 'P' Tags zuweisen. Das ist nicht gültig. Sie müssen jedem eine eindeutige ID zuweisen und für alle eine gemeinsame Klasse festlegen. Das wäre der einfachste Weg. – Harry
kann einzigartige IDs in jedem Element, rufen Sie sie nach Klasse, und nehmen $ (this) .attr ('ID')? – Gogol
Oder nicht mit einer "ID" überhaupt nicht zu stören, wenn Sie diese Artikel nicht speziell addieren müssen – RiggsFolly