javascript - 使用纯 javascript 获取不包含图形的元素
问题描述
我正在尝试获取所有不包含图形的父项。然后,如果该图形尚不存在,我将遍历该图形并将其中的图像包装在一个图形中。我已经成功地循环遍历并将每个图像包装在一个图中,但是如果该图已经存在,我想跳过它。我希望只使用 javascript 而不是 jquery。谢谢你的帮助
HTML
<div class="carousel-item active">
<figure class="figure-image">
<img src="https://via.placeholder.com/350x150" class="Image-1" alt="Second Slider Slide">
</figure>
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/350x150" class="Image-2" alt="Second Slider Slide">
</div>
JS
此 JS 循环遍历并将所有图像包装在一个图形中,但如果按照我上面的示例已经存在一个图形,如果将添加一个图形和方式,导致一个元素具有两个图形。我认为解决方案是从一开始就抓住没有.figure-images的carosuelItems,但我不确定如何做到这一点。
let carouselItem = [...document.querySelectorAll('.slider-image .carousel-item')]
for (let i = 0; i < carouselItem.length; i++) {
// Check to see if a figurea lready exists
// Create a figure for each class and add class to it.
let figure = document.createElement('figure')
figure.classList.add('figure-image')
// Get all images inside of the slider
let carouselImg = [...carouselItem[i].querySelectorAll('img')]
for (let img of carouselImg) {
// Insert the images into each figure
figure.insertAdjacentElement('afterbegin', img)
}
// Finally insert the figure with the image into each carousel slot
carouselItem[i].insertAdjacentElement('afterbegin', figure)
}
解决方案
您可以使用以下内容检查元素是否具有子元素<figure>
:carouselItem[i].querySelector("figure")
这是一个完整的例子:
let carouselItem = [...document.querySelectorAll('.carousel-item')]
for (let i = 0; i < carouselItem.length; i++) {
if(!carouselItem[i].querySelector("figure")){
// Check to see if a figurea lready exists
// Create a figure for each class and add class to it.
let figure = document.createElement('figure')
figure.classList.add('figure-image')
// Get all images inside of the slider
let carouselImg = [...carouselItem[i].querySelectorAll('img')]
for (let img of carouselImg) {
// Insert the images into each figure
figure.insertAdjacentElement('afterbegin', img)
}
// Finally insert the figure with the image into each carousel slot
carouselItem[i].insertAdjacentElement('afterbegin', figure)
}
}
<div class="carousel-item active">
<figure class="figure-image">
<img class="Image-1" src="https://via.placeholder.com/350x150" alt="Second Slider Slide">
</figure>
</div>
<div class="carousel-item">
<img class="Image-2" src="https://via.placeholder.com/350x150" alt="Second Slider Slide">
</div>
推荐阅读
- java - 与 JIB Gradle 集成导致编译错误
- reactjs - 如何将 pdf 文件/blob 上传到 S3?
- html - 如何在表格中的悬停元素上实现水平和垂直悬停效果:如何创建相交悬停?
- java - 将 $addToSet 与 Spring Batch MongoItemWriter 一起使用
- python - 从托管的 django 站点连接 ZKTECO 设备出现错误
- c# - JToken 获取具有特定前缀的属性的值
- python - 将包含字典的列表扁平化为单个字典
- pine-script - 如何在 Heaiknashi 图表上获得烛台高低值
- django - 在 Django SphinxSearch 中创建新的 RT 表
- clojure - 如何在 Babashka 中使用 gcloud