Javascript 逐个获取标题标记的文本
我需要做的是,当你按下“h”键时,一个接一个地获取标题标签的文本。这是我的密码Javascript 逐个获取标题标记的文本,javascript,jquery,Javascript,Jquery,我需要做的是,当你按下“h”键时,一个接一个地获取标题标签的文本。这是我的密码 var currentHeader; currentHeader = $(":header").first(); $(window).on('keyup', function (e) { if (e.which === 72){ //h = 72 alert(currentHeader.text()); currentHeader = currentHeader.next(
var currentHeader;
currentHeader = $(":header").first();
$(window).on('keyup', function (e) {
if (e.which === 72){ //h = 72
alert(currentHeader.text());
currentHeader = currentHeader.next(":header");
}
});
不幸的是,此代码没有按预期工作,并且没有传递错误消息:'(
我需要的是在每次按下按钮时提醒下一个标题标记文本
“h”键
:header
是同级吗?为什么要使用:header
?为什么不使用$('header')
?@MishelParkour,因为它们不是一回事。@vimuthnext()
只查找同级。您需要有一个包含所有头的变量,通过它可以使用.index(currentHeader)
要在结果堆栈中获取该标题的索引,并转到下一个标题,将是eq(index+1)
taplar。这应该会起作用。但我正在考虑更好的解决方案。比如在一个数组中获取所有标题,然后有一种可观察的,我们可以调用obs.next()
每当用户按下一个键时。您认为我的想法如何?——因为在您的解决方案中,我们应该在用户每次按下一个键时查找标题,这可能不是最理想的方式。非常感谢bro@MishelParkour这里唯一的查找是头文件
。头文件的所有操作都是javascr内部操作ipt在jQuery结果堆栈之外运行。这不是一个DOM操作。@Taplar感谢您提供的信息。最后一件事,我会给出一个提示。如果索引超过了最大索引怎么办?您可能需要添加一个if或其他东西来处理这个问题,对吗?是的。不过我想问OP他们希望发生什么n、 你可以停止逻辑,或者回到第一个。@vimuth
var headers = $(":header");
var currentHeader = headers.first();
$(window).on('keyup', function (e) {
if (e.which === 72){ //h = 72
alert(currentHeader.text());
// go to the next indexed header on the page, after the current header
currentHeader = headers.eq( headers.index(currentHeader) + 1 );
}
});