Javascript next(选择器)不';I don’我什么也不还给我

Javascript next(选择器)不';I don’我什么也不还给我,javascript,html,jquery,selector,next,Javascript,Html,Jquery,Selector,Next,我知道您可以在jQuery中使用.next()来获取下一个元素,但我也知道您可以提供一个参数,就像选择器一样,它将提供与给定参数匹配的下一个元素,但在我的例子中,它不起作用。例如: HTML: 现在,问题不是div.next(),因为我得到了'span'元素,问题是div.next(“a”),因为它没有给我任何回报。我做错了什么?这缺少对jquery的依赖,但是如果使用querySelector,您可以使用css选择器获取所需的元素。querySelector只抓取第一个,querySelect

我知道您可以在jQuery中使用.next()来获取下一个元素,但我也知道您可以提供一个参数,就像选择器一样,它将提供与给定参数匹配的下一个元素,但在我的例子中,它不起作用。例如:

HTML:


现在,问题不是div.next(),因为我得到了'span'元素,问题是div.next(“a”),因为它没有给我任何回报。我做错了什么?

这缺少对jquery的依赖,但是如果使用querySelector,您可以使用css选择器获取所需的元素。querySelector只抓取第一个,querySelector将抓取任何匹配的

console.log(document.querySelector('divTEST~a')

如果您需要使用jQuery,我创建了一个函数来实现您想要的功能。它获取与原始元素后面的选择器匹配的元素

let div=$(“div#divTEST”);
函数getChildBySelector(elm、选择器)
{
const ch=elm.nextAll();
设f=null;
for(设i=0;i

“它将为您提供与给定参数匹配的下一个元素”不正确。如果提供选择器,“它仅在与该选择器匹配时检索下一个同级”。在您的示例中,锚点不是div的下一个元素,只有跨度是。可以考虑为next提供一个选择器作为过滤器。在您的示例中,
div.next().next(“a”)
可以工作。更多这就是
.next()
应该做的。如果您传递了一个选择器,而下一个兄弟姐妹不匹配,那么您将一无所获。它不通过兄弟元素链进行搜索;它只看下一个兄弟姐妹。这个解释已经在对这个问题的评论中被考虑过了。我没有必要复制和粘贴这些在这里。我只是为op提供了另一条途径。
        <div id="divTEST"></div>
        <span id="spanTEST"></span>
        <a href="google.com">Google</a>
let div = $("div#divTEST");

console.log(div.next());
console.log(div.next("a"));