【问题标题】:Prototype select class contained in a divdiv 中包含的原型选择类
【发布时间】:2011-03-06 17:54:32
【问题描述】:

我想仅对 div“myDiv”中包含的“a”元素使用以下函数

这是我目前一直在使用的代码:

$$('a[class="active"]').each(function(element) {
      element.removeClassName("active");
    });

【问题讨论】:

    标签: class html prototypejs css-selectors


    【解决方案1】:

    您可以通过两种方式做到这一点:

    1) 查找myDiv,然后使用Element#select

    $('myDiv').select('a[class="active"]').each(...);
    

    2) 使用带有 $$ 的后代选择器的 ID 选择器:

    $$('#myDiv a[class="active"]).each(...);
    

    如果您只想要 直接 个子代(而不是后代),您可以使用子选择器(注意 >):

    $$('#myDiv > a[class="active"]).each(...);
    

    题外话#1:在选择器中写a[class="active"] 的常用方法是a.active,例如“$('myDiv').select('a.active').each(...);”。

    题外话 #2:您还可以查看 invoke 函数,该函数用于对 Enumerable 对象中的每个项目调用相同的函数(例如,“$('myDiv').select('a[class="active"]').invoke('removeClassName', 'active');”)。 invoke 很好,简短且富有表现力,但它比你自己做的要慢。 (不过,只有在涉及数千个元素时才重要。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多