У меня есть цикл php while, который считывает данные из db. В этом случае цикл - это div переменной высоты и другой div. Я пытаюсь получить высоту первого div и применить это число к верхнему краю второго div как минус: margin-top: -first div height. Я использую этот код
<script>
var height = $(".artistinfo").height();
$(".artistimage").css("margin-top", - height);
</script>
Этот код работает, но он получает высоту для первого div в первой записи db и применяет его к краю второго div во всех записях.
Может ли кто-нибудь помочь мне исправить эту проблему?
Редактировать:
Это html в моем цикле while
while($info = mysqli_fetch_array( $data )) {
$img = $info['image'];
$image = substr($img, 3);
echo "<div class='artistdiv'>";
echo "<div class='artistinfo'>";
echo "<div class='artistinfotext'>";
echo "<div class='heading2'>";
echo $info['artist'];
echo "</div>";
echo nl2br($info['info']);
echo "</div>";
echo "</div>";
echo "<div class='artistimage'>";
echo "<img class='resizedimage' src='$image' />";
echo "</div>";
echo "</div>";}}
Вы можете изменить CSS с помощью метода css и обратного вызова, который перемещается к ближайшему предыдущему artistimage, получает его высоту и возвращает его методу в качестве значения, которое нужно установить.
$( ".artistimage" ).css( "margin-top", function() {
return $(this).prev('.artistinfo').height() * -1
});