Jquery过滤器语法

时间:2010-12-17 22:33:17

标签: javascript jquery

如果我想针对一个数组过滤一组链接,然后将不在数组中的那些链接设置为不可用,那我该怎么办呢。

这就是我所拥有的:

if (this.id == '93') {
     $links.filter(function() {

   }).addClass('unavailable');

但我不知道如何检查数组的语法。

1 个答案:

答案 0 :(得分:4)

答案简短......

使用jQuery's $.inArray(value, array) function

另外,请参阅此Stackoverflow问题Javascript - array.contains(obj),其答案提到了jQuery的$.inArray函数以及其他JavaScript库中的数组搜索函数。

答案很长......

我认为您的页面上有一组超链接,如下所示:

<p><a id="google" href="http://www.google.com/">Google</a></p>
<p><a id="yahoo" href="http://www.yahoo.com/">Yahoo!</a></p>
<p><a id="ask" href="http://www.ask.com/">Ask</a></p>
<p><a id="icerocket" href="http://www.icerocket.com/">Icerocket</a></p>

并且您有一个包含这些超链接的id的数组,如下所示:

var validLinkIds = ["google", "ask"];

以下脚本将过滤所有<a>个元素,“禁用”validLinkIds数组中的那些元素:

$("a").filter(function() {
        if ($.inArray($(this).attr('id'), validLinkIds) < 0)
            $(this).removeAttr('href');
});

我创建了一个JSFiddle条目,您可以在其中运行/测试此脚本 - http://jsfiddle.net/qMhWQ/

快乐编程!