微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么jQuery each循环在每次迭代中获取所有迭代的所有元素?

如何解决为什么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 举报,一经查实,本站将立刻删除。