【发布时间】:2021-05-31 11:15:33
【问题描述】:
我有一些 div,其中每个都包含多个图像。每个图像都有相同的类。在 div 的末尾,我有一个按钮,当单击该按钮时,它会执行一个 Javascript 函数,该函数会成功循环遍历图像。但我需要 for 循环更精确。我的代码看起来像这样。
我的 HTML div 结构看起来像这样。
<div>
<img class="myImage" src="image1.png">
<img class="myImage" src="image2.png">
<img class="myImage" src="image3.png">
<button onclick="imageLooper()">Click here!</button>
</div>
<div>
<img class="myImage" src="image4.png">
<img class="myImage" src="image5.png">
<img class="myImage" src="image6.png">
<button onclick="imageLooper()">Click here!</button>
</div>
<img class="myImage" src="image7.png">
<img class="myImage" src="image8.png">
<img class="myImage" src="image9.png">
<button onclick="imageLooper()">Click here!</button>
</div>
<script src="js/main.js"></script>
我的 javascript for 循环只是一个基本的 for 循环。
function imageLooper() {
var images = document.getElementsByClassName("myImage");
for (var i = 0; i < images.length; i++) {
console.log(images[i]);
}
}
它成功地循环了所有这些。但问题是,我想让这个 for 循环更精确。我的意思是,循环不应该循环遍历所有图像,但它应该循环遍历单击按钮的 div 内部。问题是,这些 div 是动态的。我的意思是,这些 div 使用 php 代码从 mysql 打印(不知道打印是否正确)。我为此写了一个所谓的管理面板。因此,每当我从管理面板添加内容时,这些 div 就会增加 1,或者每当我从管理面板删除时,就会删除一个 div。
简而言之。如何循环播放图像。我不能更改类,因为这个 div 是由 PHP 打印的。是否可以仅在 Javascript 中执行此操作。
PS:我可以更改我的 PHP 代码,以便每个 div 都可以有不同的 id。
【问题讨论】:
-
在 imageLooper() 内部试试 this.parentNode.getElementsByClassName('myImage')。 'this' 将引用您单击的按钮,因此 parentNode 应包含您的按钮和您想要循环播放的图像。
-
Dupe 真的没有解释如何从孩子到父母....
标签: javascript php for-loop