javascript - Jquery过滤器语法

标签 javascript jquery

如果我想根据数组过滤一组链接,然后将不在数组中的链接设置为不可用,我该怎么做。

这是我所拥有的:

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

   }).addClass('unavailable');

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

最佳答案

简短的回答...

使用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/

祝你编程愉快!

关于javascript - Jquery过滤器语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475335/

相关文章:

jquery - 使用asp classic保存要通过电子邮件发送的表单中的签名

php - 如何在一行中显示 3 个 <li>

javascript - JSON CSS 解析器

javascript - 函数有效,现在 RangeError

jquery - 使用一个处理程序运行两个 Bootstrap 3 崩溃

javascript - 表单输入类型文本 jQuery

javascript - 你把你的语义信息卡在哪里,html?

javascript - 如何获取对象数组中的值?

javascript - Redux:将选择器导入 Action ?

javascript - 如何将 javascript 字符串值添加到 ASP 中隐藏字段的值