使用javascript我正在循环遍历我的 H3 元素,如下所示:
$('h3').each(function(){ });
然后,我为该标签生成一个锚点,格式如下:“section-x”,其中 x 为页面上的每个 H3 递增。我遇到的问题是我希望标题的第一个字母成为锚链接,如下所示:
* H *标题
.. 其中 H 带有下划线,表示链接。我可以格式化锚点,但是我不知道如何在每个标题的第一个字母周围加上超链接标签。一些帮助将不胜感激。
问候, kvanberendonck
使用javascript我正在循环遍历我的 H3 元素,如下所示:
$('h3').each(function(){ });
然后,我为该标签生成一个锚点,格式如下:“section-x”,其中 x 为页面上的每个 H3 递增。我遇到的问题是我希望标题的第一个字母成为锚链接,如下所示:
* H *标题
.. 其中 H 带有下划线,表示链接。我可以格式化锚点,但是我不知道如何在每个标题的第一个字母周围加上超链接标签。一些帮助将不胜感激。
问候, kvanberendonck
像这样的东西?
$('h3').each(function(){
var currentHeading = $(this).text();
$(this).html("<a href='link'>" + currentHeading.substr(0,1) + "</a>" + currentHeading.substr(1, currentHeading.length - 1));
});
让我们加入一些普通的 javascript 代码:
$('h3').html(function(i){
var self = $(this)
, html = self.html()
return html[0].anchor('section-'+i) + html.substring(1)
})
html
(和大多数其他 setter 函数)接受一个函数作为参数并使用每个元素的返回值"string".link(target)
创建代码<a href="#target">string</a>
。一个很好的复古有用的方法编辑:从切换.link
到.anchor
. 虽然不推荐使用锚点,但您应该开始为此使用 ID:
$('h3').html(function(i){
var self = $(this)
, text = self.text()
// give the H3 an id and link to it
// ideally the headers should already have an id
this.id = 'section-'+i
return text[0].link('#section-'+i) + text.substring(1)
})
$('h3').each(function(i){
var firstLetter = $(this).text()[0];
$(this).html('<a href="where.html">' + firstLetter + '</a>' + $(this).text().substr(1));
});
不知道你想把section-x
那个标题放在哪里,但你可以i
在里面使用each()
来获取当前的迭代索引。