更改数据值 attr('data', 'value') 无法正常工作

change data value attr('data', 'value') not working correctly

我正在尝试将 data-name 添加到图像的每个父级 div。我在尝试:

<div><img src="..." alt=""/></div>
... 40 times (<div><img src="..." alt=""/></div>)
<div><img src="..." alt=""/></div>

js:

$("img").load(function() {
  $(this).parent().attr('data-name', 'abc')
});

这样一来,只加了div的1/3。以上 2/3 不是。我该如何解决?

如果你加载这么多图片没有问题(一些预加载会更好)你可以简单地使用:

$(window).on("load", function(){
   $('img').parent().attr('data-name', 'abc');
})

第二个问题的答案可能是这个:

$(window).on("load", function(){
     $('img').each(function(){
          var width = $(this).width();
          console.log(width)
          $(this).parent().attr('data-name', 'abc').attr('data-size', width);
     })
})

注意:我在这里检查图像宽度,我认为这是必需的,如果您需要高度,只需更改它即可。