获取特定元素后的文本(JavaScript或JQuery)
谁能给我一些指导,告诉我什么是最好的方法 我正在尝试获取“.main”后面的所有文本 我知道这可能很简单,但就在圣诞节前一整天,我的脑子都在紧张。所以我想,与其让自己紧张,不如寻求一些指导 示例代码仅返回p标记中的获取特定元素后的文本(JavaScript或JQuery),javascript,jquery,Javascript,Jquery,谁能给我一些指导,告诉我什么是最好的方法 我正在尝试获取“.main”后面的所有文本 我知道这可能很简单,但就在圣诞节前一整天,我的脑子都在紧张。所以我想,与其让自己紧张,不如寻求一些指导 示例代码仅返回p标记中的文本,但我想返回不在其自身元素中的文本和p标记 console.log($(“#容器”).find(“.main”).next().text() 主低音 文本不在它自己的元素中 p标记中的文本 实现这一点的最简单方法是克隆()容器,从中删除.main元素,然后获取文本(),如下所示
文本,但我想返回不在其自身元素中的文本
和p标记
console.log($(“#容器”).find(“.main”).next().text()代码>
主低音
文本不在它自己的元素中
p标记中的文本
实现这一点的最简单方法是克隆()
容器,从中删除.main
元素,然后获取文本()
,如下所示:
var text=$(“#容器”).clone().find('.main').remove().end().text();
console.log(text.trim())代码>
主低音
文本不在它自己的元素中
p标记中的文本
这是因为不在其自身元素中的文本被视为节点,因此next()
将以
标记为目标,因为它是一个节点。如果要使用本机,则需要使用两种节点类型的组合,这两种节点类型是不可知的,并且正如其方法名称所示,它会获取下一个同级元素:
const main=document.querySelector('.main');
常量txt=[
main.nextSibling.textContent.trim(),
main.nextElementSibling.textContent.trim()
];
console.log(txt)
主低音
文本不在它自己的元素中
p标记中的文本
在这种情况下DOM是不可变的吗?尝试nextSibling
在元素后添加文本,而不是nextElementSibling
。你真该死,比我快了。'You genius Rory!:)谢谢你帮助我。就在圣诞节前,我把自己弄得筋疲力尽。这是一个很好的解决方案,但请注意,当您以前在container div中有内容时,main也会显示出来@卡尔·爱德华兹的答案没有这个constraint@Archer在这种情况下,您需要在选择main
后使用prevAll()
,并将其删除。@bananasplitter true,但该解决方案只要求有以下两个元素。这将适用于无限多的以下同级元素或节点。这两种方法都可以,这取决于你的具体情况。你为什么要使用const
?这是现在不喜欢var
的新时尚吗?当使用var
时,您会面临意外提升和/或重新分配的风险。除此之外,Javascript变量是动态类型化的,这也可能导致意外行为。如果适用,最好使用const
。不讨厌var
。只是让代码至少保持可预测性的问题。@CarlEdwards然后如何调整此选项以删除文本?@ChrisBeckett您指的是什么文本?@CarlEdwards文本不在其自身元素中p标记中的文本