Javascript - 过滤链接和样式集

时间:2010-12-20 17:34:19

标签: jquery

这是我的一组链接:

<ul id="power">
    <li><a id="10watt" name="power" href="#">10 watt</a></li>
    <li><a id="25watt" name="power" href="#">25 watt</a>
    <li><a id="30watt" name="power" href="#">30 watt</a>
    <li><a id="40watt" name="power" href="#">40 watt</a>
    <li><a id="50watt" name="power" href="#">50 watt</a>
    <li><a id="60watt" name="power" href="#">60 watt</a>
    <li><a id="75watt" name="power" href="#">75 watt</a>
    <li><a id="100watt" name="power" href="#">100 watt</a>
    <li><a id="120watt" name="power" href="#">120 watt</a>
    <li><a id="150watt" name="power" href="#">150 watt</a>
</ul>

然后我有一个数组:

var nine = ['25watt','30watt','40watt','50watt','60watt','75watt'];

我想过滤链接,以便不在数组中使用我在CSS中定义的“不可用”类进行样式设置。这是我的jQuery。

if (this.id == '93') {
           $('a [name="power"]').filter(function() {
               if ($.inArray($(this).attr('id'), nine) < 0)
               $(this).addClass('unavailable');
               $(this).removeAttr('href');
           });
      }

this.id来自上一组链接,如何编写我的过滤器语句,因为我所拥有的不起作用。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这应该有效:

$('a[name="power"]').filter(function() {
    return $.inArray($(this).attr('id'), nine) == -1;
}).addClass('unavailable').removeAttr('href');

您的选择器在a[name="power"]之间有一个空格,这意味着您选择的所有[name="power"]都是a的后代,而不是a本身。除此之外,我更正了过滤功能,仅进行过滤。