如果我想针对一个数组过滤一组链接,然后将不在数组中的那些链接设置为不可用,那我该怎么办呢。
这就是我所拥有的:
if (this.id == '93') {
$links.filter(function() {
}).addClass('unavailable');
但我不知道如何检查数组的语法。
答案 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/
快乐编程!