динамический div не отображается

#javascript #html

#javascript #HTML

Вопрос:

Я написал простой код для отображения динамического div (переписанный из учебника), изменил его, чтобы сделать div img-оболочкой. Но изображение не отображается. Что я делаю не так?

Вот мой код:

div1.php:

 <html>
<body>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>


<script>

$(document).ready(function() {
    $('#outerdiv').append(
    $('<div>').prop({
    id: 'myDiv',
    //innerHTML: 'Hi there!',
    className: 'img-wrapper'
    })
    );
});

$(this).css('height',"100px");

var get_a_image = "http://iancaple.ru/upload/images/20200804_225812.jpg";
    
$('#myDiv').append($('<img id="theImg2">').attr({
    'src': get_a_image , //'https://'   imgUrl ,
    'alt': 'test image '
    })
    ).scrollTop(9999)
</script>
    
</body>
<html>
 

Ответ №1:

 $(document).ready(function() {
  $('#outerdiv').append(
    $('<div>').prop({
      id: 'myDiv',
      innerHTML: 'Hi there!',
      className: 'img-wrapper',
    })
  );
});

$(this).css('height', "100px");

var get_a_image = "http://iancaple.ru/upload/images/20200804_225812.jpg";

$(document).ready(function() {
  $('#myDiv').append(
    $('<img>').prop({
      id: 'myDiv',
      'src': get_a_image, //'https://'   imgUrl ,
      'alt': 'test image ',
      'width': 200
    })
  );
}); 
 <div id="outerdiv"></div> 

Сначала вставьте HTML div с идентификатором outerdiv, затем измените код js с помощью функции document.ready

Комментарии:

1. Я сделал, как вы сказали. Теперь он показывает изображение, но: 1) изображение отображается в полном размере, а не в img-оболочке, и самое главное: 2) мне нужно иметь изображение в динамически создаваемом myDiv, а не в уникальном outerdiv. (Мне нужно отобразить несколько изображений в цикле) Ps я также добавил css для отображения img-оболочки

2. Css: .img-wrapper { переполнение: авто; высота: 200 пикселей; размер: оба; цвет фона: синий; положение: относительное; переполнение-x: авто; переполнение-y: авто; } .img-wrapper > img { отображение: блок; высота: авто; ширина: 100%; позиция: абсолютная; /* top: -50%; */ vertical-align: top; }

3. Вы можете использовать атрибут width элемента HTML, как я, нет, изображение находится в div с классом img-wrapper, в вашем CSS вы также должны указать ширину в .img-wrapper, например width: 400px, и я думаю, что переполнение не требуется

4. Теперь возникла новая проблема. Как я уже сказал, мне нужно отображать изображения в цикле. Но мне нужно отобразить некоторую информацию между ними. Например, ссылки на изображения и информацию о пользователе (таблица html). Теперь, когда я поместил outerdiv в начало своего кода, все изображения отображаются в верхней части моей страницы. Но мне нужно, чтобы они были распределены по всей странице

5. Вы можете оформить .img-оболочку с помощью display:block, чтобы изображения перемещались вертикально, и вы можете поместить некоторое пространство над каждым изображением, используя .img-wrapper img { margin-top:30px }