JQuery多个选择器:第一个和:包含文本()

JQuery多个选择器:第一个和:包含文本(),jquery,Jquery,我只想选择其同级是包含文本“From:”的第一个跨距的文本。页面上还有第二个“From:”,因此上面的查询不带“:first”不会出错,但会返回两个文本。我只需要与“From:”的第一个实例相关的文本。在xpath中,我想我可以在末尾添加一个[0]。但我不知道如何“嵌套”第一个选择器(伪选择器?)。我是jquery的新手。也许你应该分享你的HTML结构,这样我们才能更好地了解你想要做什么 根据您的解释,我理解您正试图这样做: $(文档).ready(()=>{ var text=$('span

我只想选择其同级是包含文本“From:”的第一个跨距的文本。页面上还有第二个“From:”,因此上面的查询不带“:first”不会出错,但会返回两个文本。我只需要与“From:”的第一个实例相关的文本。在xpath中,我想我可以在末尾添加一个[0]。但我不知道如何“嵌套”第一个选择器(伪选择器?)。我是jquery的新手。

也许你应该分享你的HTML结构,这样我们才能更好地了解你想要做什么

根据您的解释,我理解您正试图这样做:

$(文档).ready(()=>{
var text=$('span:contains(“From:”):first')。同级('span')。text();
$('.display').text(text);
});

测试来源:文本1
文本1的兄弟姐妹
测试来源:文本2
文本2的兄弟姐妹
测试来源:文本3
文本3的兄弟姐妹


我能够使用过滤器使其工作:

var text = $('span:first:contains("From:")').siblings(span).text()

这个过滤器没有意义,也没有做任何相关的事情。删除它,您将获得
$('span:contains(“From:”)).first().sibbines('span').text()
,它做同样的事情。是的,这确实有效。我不知道jquery,我只是随便玩了一下,发现过滤器工作了,但你的答案更合理——我确实试着把:first放在:contains之后,但它不工作。我设法用过滤器让它工作
var text = $('span:contains("From:")').filter(function() {
      return $(this).text();
    }).first().siblings('span').text();