javascript - 仅获取单击的 div 元素的子元素
问题描述
所以我正在构建这个网页,并且我有一些用于在 div 中打开模式的幻灯片的照片。我想获得所有点击 div 的孩子(myModal)。我想获取所有具有“mySlides”类的 div,它们是具有“myModal”类的单击 div 的子级。这是我的代码:
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
console.log(slides);
var dots = document.getElementsByClassName("dot1");
if (n > 3) {
slideIndex = 1;
}
if (n < 1) {
slideIndex = slides.length;
}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active1", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active1";
}
<!-- reference item -->
<div class="grid-item set-bg osobj" data-setbg="img/portfolio/2.jpg">
<a class="myBtn" onclick="getSlides()"></a>
<div class="myModal modal1">
<!-- Modal content -->
<div class="modal1-content">
<span class="close1">×</span>
<h2>smth</h2>
<div class="post1-container">
<div class="post1-thumb">
<div class="slideshow1-container">
<div class="mySlides">
<div class="numbertext">1 / 3</div>
<img src="img/portfolio/3.jpg" style="width: 550px; height: 450px;">
<div class="text1">Opis slike1</div>
</div>
<div class="mySlides">
<div class="numbertext">2 / 3</div>
<img src="img/portfolio/4.jpg" style="width: 550px; height: 450px;">
<div class="text1">Opis Slike2</div>
</div>
<div class="mySlides">
<div class="numbertext">3 / 3</div>
<img src="img/portfolio/6.jpg" style="width: 550px; height: 450px;">
<div class="text1">Opis Slike3</div>
</div>
<button class="prev1" onclick="plusSlides(-1)">❮</button>
<button class="next1" onclick="plusSlides(1)">❯</button>
</div>
<br>
<div style="text-align:center">
<span class="dot1" onclick="currentSlide(1)"></span>
<span class="dot1" onclick="currentSlide(2)"></span>
<span class="dot1" onclick="currentSlide(3)"></span>
</div>
</div>
</div>
</div>
</div>
</div>
我尝试使用 $(this).children 但没有这样的运气:
function getSlides() {
var slides1 = $(this).children('img').attr('src');
console.log(slides1);
}
我怎样才能做到这一点?我的页面中有多个参考项目,所有参考项目都有不同的 3 个图像以在模式打开时显示。但我只想选择那些是单击元素的子元素(因为现在它返回我所有的“mySlides”div)。
解决方案
您可以onclick="getSlides()"
从 DOM 中删除并使用此 Jquery
$('.myBtn').off().on('click',function(){
$(this).next('.myModal').find('.mySlides').each(function(i,v){
console.log($(v)[0].outerHTML);
});
});
推荐阅读
- javascript - JS 正则表达式:三个匹配中的一个正确匹配和一个错误匹配
- javascript - Bootstrap 4 验证无法正确使用必填字段
- html - 未排序的列表不会在一行中展开
- python - 类型错误:更新()缺少 1 个必需的位置参数:'self'
- javascript - JavaScript - reduce 示例的解释
- oracle - 如何编写 oracle 或 pl/sql 脚本以仅针对表中的“数字”数据类型查找列的平均值和中位数
- java - 如何获取 XML 代码中标签中包含的字符串?
- r - R中缺失日期/值的“插值”?
- sql-server - Microsoft.SqlServer.Management.IntegrationServices.dll 应该从哪里加载?
- r - R与Matlab中的复数