如何解决为什么jQuery each循环在每次迭代中获取所有迭代的所有元素?
为什么该脚本没有在每次迭代中获取H3,而是每次都获取所有迭代中的所有H3?!
JS:
$('a.grid-Box').each(function(index){
$( '.meta-info h3');
});
HTML:
<div class="row">
<a class="grid-Box" href="">
<div class="links-icons meta-info">
<h3>Title 1</h3>
</div>
</a>
<a class="grid-Box" href="">
<div class="links-icons meta-info">
<h3>Title 2</h3>
</div>
</a>
etc...
</div>
解决方法
因为选择器未引用a.grid-box
迭代上下文,所以全局搜索也是如此。
更改
$('a.grid-box').each(function(index){
$('.meta-info h3');
});
到
$('a.grid-box').each(function(index){
$(this).find('.meta-info h3');
});
$('a.grid-box').each(function(index) {
var h3 = $(this).find('.meta-info h3');
console.log(h3.length,h3.text())
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<a class="grid-box" href="">
<div class="links-icons meta-info">
<h3>Title 1</h3>
</div>
</a>
<a class="grid-box" href="">
<div class="links-icons meta-info">
<h3>Title 2</h3>
</div>
</a>
etc...
</div>
还要注意原始代码中的;.
错字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。