Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逐个获取标题标记的文本_Javascript_Jquery - Fatal编程技术网

Javascript 逐个获取标题标记的文本

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(

我需要做的是,当你按下“h”键时,一个接一个地获取标题标签的文本。这是我的密码

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,因为它们不是一回事。@vimuth
next()
只查找同级。您需要有一个包含所有头的变量,通过它可以使用
.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 );
    } 
});