1

让我更好地描述一下我想在这里做什么。我正在使用 Wikispaces,默认情况下,当用户向侧面导航栏添加新页面链接时,wikispaces 会插入以下两个类之一:wiki_linkwiki_link_new。这是它的样子......

<a href="/Map+Page" class="wiki_link">Map Page</a><br/>
<a href="/Staff+Olympics" class="wiki_link">Staff Olympics</a><br/>
<a href="/Staff+Meetings" class="wiki_link_new">Staff Meetings</a><br/>

我想自动删除这两个类(wiki_link 和 wiki_link_new),并在链接中添加一个类以更好地代表页面 url。 因此,对于 /Map+Page url,将向链接添加一个类,该类是链接标题的前 3 个字母...地图。然后,如果链接 url 有两个单词(如 /Map+Page 中),该类还将在 url 中添加第二个单词的前 3 个字母,前面是一个破折号。因此,对于 /Map+Page,要添加到此链接的类将是

class="map-pag"

或者,如果它是 /Staff+Olympics 网址,则要添加的课程将是...

class="sta-oly"

而且我猜如果 a:link url 中有超过 2 个单词,那么在将 CSS 类应用于链接时,多余的单词将被忽略,只注意第一个单词的前 3 个字母,然后是破折号,然后是第二个单词的前 3 个字母。

最重要的是,我想删除<br/>wikispaces 默认插入的所有实例。

所以理想情况下,我想要一个 jQuery 解决方案,可以将上面的 3 a:links 更改为此...

<a href="/Map+Page" class="map-pag">Map Page</a>
<a href="/Staff+Olympics" class="sta-oly">Staff Olympics</a>
<a href="/Staff+Meetings" class="sta-mee">Staff Meetings</a>

不确定我的班级命名约定是否最好。所以如果你有更好的建议,我很乐意听到!:)

感谢您的任何帮助,您可以提供!

4

1 回答 1

3

这应该做你想要的:

// Select the links, and remove their classes
$(".wiki_link, .wiki_link_new").attr('class','').each(function(){
    var className = $(this).attr('href').substr(1).toLowerCase().split('+').slice(0,2).join('-');
    $(this).addClass(className);
});

我只会<br />用 CSS 隐藏标签。操作 DOM 在时间和资源上是昂贵的,所以如果你可以隐藏它们会更快。

CSS

#container br { display: none; }

这些标签#container的父元素在哪里。a

如果你真的想使用 jQuery:

jQuery

$("#container br").remove();

同样,标签#container列表的父级在哪里。a

于 2010-01-09T03:08:13.463 回答