提问者:小点点

jQuery.每个带有if条件的函数都适用于第一个元素


我有HTML内容(实际上是一个WordPress插件的标签,像这样)-

<div class="store-tabs">
        <ul class="list-inline">
            <li><a href="https://example.com/store/">Products</a></li>
            <li><a href="https://example.com/store/reviews">Reviews</a></li>
        </ul>
</div>

如果我在匹配的URL上,我正在尝试将“active”类添加到link元素中。我的问题是,条件只对第一个元素起作用,但第二个元素没有得到类。这是我的jQuery-

jQuery(document).ready(function($){
  
  var url      = window.location.href;

  $('.store-tabs .list-inline li a').each(function(){

    var current = $(this).attr('href');

    if (current == url) {
      $(this).addClass('active');
    }

   });

});

更新

代码是正确的,但我的URL在结尾没有匹配的尾随斜杠。我通过添加斜杠(URL是自动生成的)修正了它-

if(current.slice(current.length - 1) != '/') {
      current = current + '/';
    }

谢谢大家:)


共1个答案

匿名用户

https://example.com/store/reviews不等于https://example.com/store/reviews/。尝试将“/”添加到href=“https://example.com/store/reviews”的末尾