Использование jquery для получения высоты одного div и изменения поля на другом

0

У меня есть цикл 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>";}}
  • 1
    Пожалуйста, добавьте HTML-код, который вы пытаетесь изменить атрибуты.
  • 0
    Вопрос отредактирован с помощью HTML
Теги:

1 ответ

1
Лучший ответ

Вы можете изменить CSS с помощью метода css и обратного вызова, который перемещается к ближайшему предыдущему artistimage, получает его высоту и возвращает его методу в качестве значения, которое нужно установить.

$( ".artistimage" ).css( "margin-top", function() {
  return $(this).prev('.artistinfo').height() * -1
});
  • 0
    Это работает, но теперь .artistinfo переполняет artistdiv в следующий элемент artistdiv
  • 0
    Это потому, что вы попросили установить отрицательное поле, затем просто удалите * -1.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню