【问题标题】:jquery: how to cycle through multiple items selectedjquery:如何循环选择多个项目
【发布时间】:2013-11-21 09:54:22
【问题描述】:

我有一个菜单栏,其中包含反映操作类别的顶部菜单项,这些操作是对可见数据的排序或过滤操作:

<ul class="menu-bar">
        <li class="top-menu-item"><a class="clear-filter">Clear</a></li>
        <li class="top-menu-item"><a><span class="category Category1">Category1</span></a>
          <ul>
           <li><a>FilterAction</a></li>           
            <li><a>SortAction</a></li>           
          </ul>
        <li class="top-menu-item"><a><span class="category Category2">Category2</span></a>
        ...
</ul>

当用户选择排序或过滤操作时,我的脚本当前会将相应范围中的文本替换为操作的名称,并将适当的类添加到范围以指定选择,以便如果您选择 @987654322 @ 在Category1 菜单中,跨度如下所示:

<span class="category Category1 set-filter">FilterAction</span>

如果您选择了SortAction,则将跨度设置为

<span class="category Category1 set-sort">SortAction</span>

如果您同时选择了两者:

<span class="category Category1 set-filter set-sort">SortAction, FilterAction</span>

总是首先列出排序操作。

任何时候只能有一个排序操作,但一次过滤器的数量没有限制。

要更改一个排序,因为一次只能有一个排序,这很容易 - 当我设置一个新排序时,我会检查现有的 set-sort 类,删除 set-sort 类并然后将文本适当地替换为作为span 的类(以上Category1)保留的原始类别,或者删除逗号之前的所有文本(包括在内),以便仅保留过滤器文本。这没有问题。

目前,删除过滤器的唯一方法是单击 Clear 链接,该链接应将所有具有 set-filter 类的 spans 替换为原始类别名称或现有排序操作。

我遇到的麻烦是能够一次选择带有sort-filter 的所有跨度,然后循环以相应地更改文本和类。我目前有执行此操作的咖啡脚本代码:

$target = $(event.target) # this will be the clear button
$categorySpan = $target.parents(".menu-bar").eq(0).find(".set-filter")
<< code to perform actions on $categorySpan >>

现在这显然不起作用,它只会对所有选定的跨度执行一揽子操作,而不是单独循环遍历每个跨度。我最初是这样尝试的:

for $categorySpan in $target.parents(".menu-bar").eq(0).find(".set-filter")

但后来我无法访问跨度的关键属性,例如文本。

这种循环操作的正确方法是什么?

【问题讨论】:

    标签: javascript jquery html coffeescript


    【解决方案1】:

    我不确定你想做什么...但是这个循环可以让你循环遍历每个 set-sort span 并将文本应用到 span,或者对每个执行任何你想做的事情。

    $('span.set-sort').each(function () {
        var $this = $(this);
        $this.text('Whatever you want').addClass('hello').removeClass('world');
    });
    

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 2023-01-10
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2011-01-09
      • 2020-10-07
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多