让我更好地描述一下我想在这里做些什么。我正在使用Wikispaces,默认情况下,当用户向侧面导航栏添加新页面链接时,wikispaces会插入两个类别之一: wiki_link 或 wiki_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),并在更好地代表页面网址的链接中添加一个类。因此,对于/ 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:链接......
<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>
不确定我的类命名约定是否最佳。所以,如果你有更好的建议,我很乐意听到它! :)
感谢您提供的任何帮助!
答案 0 :(得分: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);
});
我只想用CSS隐藏<br />
标签。操作DOM的时间和资源都很昂贵,所以如果你能隐藏它们会更快。
<强> CSS 强>
#container br { display: none; }
#container
是哪个元素是a
标记的父元素。
如果你真的想使用jQuery:
<强>的jQuery 强>
$("#container br").remove();
同样,#container
是a
代码列表的父级。