Получить parentNode tagName
Я не могу получить parentNode.tagName из этого кода и добавить стиль li
тег.
// path to catalog images
var img = $('.catalog ul li > img');
for (i = 0; i < img.length; i++) {
var pic_real_width;
// Make in memory copy of image to avoid css issues
$("<img/>").attr("src", $(img[i]).attr("src")).load(function () {
pic_real_width = this.width;
if (pic_real_width > 500) {
// this part of code not work
var imageParent = this.parenNode.tagName = 'li';
imageParent.style.width = '50%';
}
});
}
1 ответ
Решение
У тебя есть parenNode
вместо parentNode
и вы, похоже, присваиваете это свойство, которое доступно только для чтения.
// ---------------------v v---assignment won't work
var imageParent = this.parentNode.tagName = 'li';
Если вы просто хотели родителя, нет причин возиться с .tagName
,
var imageParent = this.parentNode;
imageParent.style.width = '50%';
Кроме того, я не вижу, где вы добавляете новый <img>
в ДОМ. Если он не добавлен, у него не будет родителя.
Может быть, вы хотели получить родителя оригинального изображения. Для этого каждый load()
обработчик должен будет закрыть текущий i
или же img
, Ты можешь использовать .each()
чтобы сделать это.
$('.catalog ul li > img')
.each(function(i, img) {
var pic_real_width;
$("<img/>").attr("src", $(img).attr("src")).load(function () {
pic_real_width = this.width;
if (pic_real_width > 500) {
var imageParent = img.parentNode;
imageParent.style.width = '50%';
}
});
})