用计数类包装Word的实例

时间:2011-05-16 04:27:50

标签: jquery arrays class find

说我有3段,不一定是段落标签。 “Wonderland”这个词在这三段中出现了5次。我需要一个脚本,可以在span或div中包装这些“WonderLand”实例,给它一个公共类和一个计数实例类。最后一部分是我需要帮助的,其余的我知道该怎么做。

例如,第一个实例将具有class =“Common Instance1”,最后一个将具有class =“Common Instance5”。

我觉得我可以将每个实例存储在一个数组中,然后使用数组索引值(显然是+1)并将其附加到类名,但我想要建议。

1 个答案:

答案 0 :(得分:2)

我想出如何做到这一点的唯一方法不幸地使用*选择器和第二个循环来添加增量类,因此可能有更有效的方法来实现这一点。此代码将在一个带有wl类和递增类wl0, wl1, wl2等的范围中包含Wonderland一词。由于您没有指定容器标签的类型,我使用了*选择器,因此,根据您网页的大小,这可能会表现不佳。您可以通过将选择器中的body更改为更简洁的包装来改进这一点。

// wrap Wonderlands
$('body *:contains("Wonderland")').each(function(i,el){
    $(this).html(function(j,v){
        return v.replace(/Wonderland/ig, '<span class="wl">$&</span>');
    });
});

// add incremental class
$('span.wl').each(function(i, el){
    $(this).addClass('wl' + i);
});

See demo →