如果我想根据数组过滤一组链接,然后将不在数组中的链接设置为不可用,我该怎么做。
这是我所拥有的:
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/