在jQuery中查找特定元素's.每个函数并用它做些什么

Find specific element in jQuery's .each function and do something with it

本文关键字:函数 做些什么 查找 jQuery 元素      更新时间:2023-09-26

这是我的标记:

<ul class="tab1">
<li><a href="http://site.com/some.html?param=1"></li>
<li><a href="http://site.com/some.html?param=2"></li>
<li><a href="http://site.com/some.html?param=3"></li>
...
</ul>

我试图比较当前window.location是否与任何列表锚匹配,如果为true,那么我想做一些类似addClass('active')的操作。

我的代码用于检查浏览器的当前位置并从列表元素中获取href参数:

// get current url parameter
var getBrowserUrl = document.URL.split('?')[1];
// get parameters of all the <li> anchors
jQuery('.tab1 a').each(function(){
    var getElementUrl = jQuery(this).attr('href').split('?')[1];
    if (getBrowserUrl == getElementUrl ) {
        jQuery(this).addClass('active');
    }
});

jQuery(this)位显然不起作用,因为"this"将引用所有列表元素。

如何指定匹配的列表元素?

我已经测试了您的代码,并进行了一些修改,尝试如下:

 <ul class="tab1">
     <li><a href="http://site.com/some.html?param=1"/></li>
     <li><a href="http://site.com/some.html?param=2"/></li>
     <li><a href="http://site.com/some.html?param=3" /></li>
</ul>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
     <script type="text/javascript">
         $(function () {
             // get current url parameter
             var getBrowserUrl = document.URL.split('?')[1];
             // get parameters of all the <li> anchors
             $('.tab1 a').each(function () {
                 var getElementUrl = $(this).attr('href').split('?')[1];
                 if (getBrowserUrl == getElementUrl) {
                     $(this).addClass('active');
                 }
             });
         });
     </script>

如果您想更好地控制正在迭代的项目,请将其添加到.each函数中:

.each(function(index, value) { ... }

这样,价值就是你想要找到的元素。

相关文章: