我一直在尝试在 Google 上找到解决方案,所以我想我会将其发布到社区。我需要使用 JavaScript 来定位页面上的所有 H2,获取 innerHTML 值,然后在 div 中水平循环它们(很容易)以在页面顶部显示一个副标题锚列表。有人可以告诉我或提示我如何使用 JavaScript 例程来定位页面上的所有 H2 吗?谢谢!
问问题
345 次
3 回答
1
如果你使用 jQuery,你可以运行类似这样的东西
$('h2').each({
/* function */
});
然后附加到.nav
您可以运行的容器
$('h2').each(function() {
$('.nav').append($(this).text())
});
于 2013-06-12T16:41:36.303 回答
1
使用document.getElementsByTagName选择所有h2
s:
var h2s = document.getElementsByTagName('h2');
for(var i = 0, length = h2s.length; i < length; i++){
// Do something with
h2s[i].innerHTML;
}
于 2013-06-12T16:41:43.287 回答
0
首先,为您要创建的链接创建一个空集合:
var $links = $();
然后,循环遍历每个h2
using .each()
、 providersindex
和h2
as 参数——第一个保持计数,第二个获取<h2>
我们正在处理的当前的引用。
$('h2').each(function(index, h2){
// If there is no id (to link to), create one based on the index
if(!h2.id){
h2.id = 'header' + index;
}
// Get a jQuery object of the header
var $h2 = $(h2);
// Link will be an <a> with the same text as the heading, and will link to its id
var $link = $('<a>').text($h2.text()).attr('src', '#' + h2.id);
// Add this link to the collection
$links = $links.add($link);
});
所以现在$links
包含您的目录。假设您想在 之后插入这些链接<h1>
,您将执行以下操作:
$links.insertAfter('h1');
……当然,此时你可以对他们做任何你想做的事。
于 2013-06-12T16:49:55.520 回答