【发布时间】:2012-05-12 03:16:42
【问题描述】:
我在 Stack 上找到了一个不错的 snippet,它从链接中获取文本并将其作为类附加到 a 标签:
$('a.nav').each(function() {
// add class with name of the link's text
$(this).addClass($(this).text());
});
它很好用,只是我有一个链接搜索结果列表,在链接文本之后输出(numbers), e.g. (19)。
所以应用上面的 JQuery 后我的 HTML 的结构是这样的:
<li><a class="Basic page (1)" href="#">Basic page (1)</a></li>
<li><a class="Blog (19)" href="#">Blog (19)</a></li>
<li><a class="News (4)" href="#">News (4)</a></li>
如您所见,这并不理想。如果可能的话,我想至少去掉括号中的数字,即(1)、(19) 等……然后加上破折号,加上文字和小写字母。请注意,这是针对多面搜索结果的,因此链接永远不会全部在一起或以相同的顺序排列。我只是尝试基于链接文本名称应用动态类,这样我就可以在主题领域中做其他事情。
所以这个:
<li><a class="Basic page (1)" href="#">Basic page (1)</a></li>
...会变成这样:
<li><a class="basic-page" href="#">Basic page (1)</a></li>
【问题讨论】:
-
您需要这个有什么特别的原因吗?听起来很复杂。您可以改用
li元素的index来识别它们。 -
@RoryMcCrossan 问题是它们是分面搜索的搜索结果,因此永远不会一起出现或以相同的顺序出现。
标签: javascript jquery text replace