javascript - 对 ul li 中的所有元素执行相同的操作
问题描述
我有一个无序列表,其中每个列表项都有一个跨度,其中有一张图片。我正在尝试将其内部 img 块包含的图像设置为每个跨度的背景图像,然后将该图像块的不透明度设置为 0。
这是我写的代码。问题是这似乎无法正常工作,即使我注释了我设置背景图像的行,我仍然可以看到图片,虽然我不应该看到,因为 img 块的不透明度设置为 0 . 这让我觉得代码没有正确设置背景图像。
你能帮我理解我做错了什么吗?谢谢你!
var myUl = $('.my-ul');
[...myUl.children].forEach(childLi => {
const span_list = childLi.querySelector('span');
const img_list = childLi.querySelector('img');
var path_picture = img_list.src;
$(span_list).css("background-image", "url(${path_picture})");
$(span_list).css("background-size", "contain");
img_list.style.opacity = 0;
});
.my-ul li span {
display: block;
width: 200px;
height: 200px;
}
.my-ul li img {
width: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul class="my-ul">
<li>
<span>
<img src="https://www.trudellanimalhealth.com/sites/default/files/documents/tmdi-cat-athma-concern_2x.png" />
</span>
</li>
<li>
<span>
<img src="https://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/other/cat_relaxing_on_patio_other/1800x1200_cat_relaxing_on_patio_other.jpg" />
</span>
</li>
<li>
<span>
<img src="https://undark.org/wp-content/uploads/2020/02/GettyImages-1199242002-1-scaled.jpg" />
</span>
</li>
</ul>
解决方案
不确定您如何处理 vanilla js 或 jquery 中的更改样式,但这可能img_list.style.opacity = 0;
是错误的。也许img_list
是一组元素/节点所以它不起作用?
推荐阅读
- octave - 如何解决gnu octave中的符号方程组?
- python - 调用需要在当前环境中定义的内容的导入函数时出现 NameError
- python - 类对象的陈旧酸洗 - 最佳实践
- python - 包含值列表的其他列中的值列
- python - 岭回归上重复 k 折的验证(和测试)集的 MSE?
- blob - 在后端获取 blob 并发送到前端
- flutter - Flutter 中正确的 http 请求 url 应该如何从 shopify 商店获取数据?
- javascript - Firestore 规则“允许模拟读取”但在浏览器中失败
- postgresql - 数据目录由 PostgreSQL 版本 13 初始化,与此版本 14.0 不兼容
- php - 获取 Dropbox 可共享链接元数据