Получить размеры загруженного изображения с помощью javascript / jquery?

Также попробуйте это, но для меня это не работает.

Определение размера файла изображения + размеры с помощью Javascript?

Я загружаю изображение, вставляю его на страницу через jquery и хочу создать div вокруг вставленного изображения, но не знаю размеров изображения.

$("#temp_image").html('<img src="uploads/obr1.jpg" alt="" id="tmp" />');
var img = document.getElementById('temp_image');
alert(img.clientWidth);

это покажет мне 0, что не так?

также попробовал:

var oImg = new Image();
oImg.src = 'uploads/obr1.jpg;
if (oImg.complete) {
  alert(oImg.width)
} 

это показывает мне 0 тоже.

где проблема? Спасибо

3 ответа

Решение

Должно быть:

$("#temp_image").html('<img src="uploads/obr1.jpg" alt="" id="tmp" />');
var img = document.getElementById('tmp');
alert(img.clientWidth);

В настоящее время вы пытаетесь получить ширину содержащего элемента div (#temp_image), а не изображения.

Кроме того, если вы используете jQuery, вы можете просто сделать:

$("#temp_image").html('<img src="uploads/obr1.jpg" alt="" id="tmp" />');
alert($('#tmp').width());

Надеюсь это поможет!

Я попробовал ваш метод, и он работает. Вы просто не написали это хорошо. Вы забыли закрыть цитаты.

var oImg = new Image();
oImg.src = 'uploads/obr1.jpg';
if (oImg.complete) {
  alert(oImg.width)
}
var img = document.getElementById('temp_image');

на самом деле не получает элемент изображения, он получает элемент, содержащий изображение. Тебе стоит попробовать

var img = document.getElementById('tmp');

или же

var img = $('#tmp')[0];

вместо. Также убедитесь, что изображение действительно видно, когда вы получаете его размеры, как clientWidth а также clientHeight будет ноль, если элемент скрыт.

Другие вопросы по тегам