Javascript JQuery无法访问下一个目标元素

Javascript JQuery无法访问下一个目标元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我不知道为什么,但是如果在上面的提琴中,如果您在输入中键入任何字符,然后按向下键,控制台将生成两个日志。第一个值为3(正确),第二个值为0(不正确) 我正试图根据特定的输入以元素为目标: // this works... console.log($('.autocomplete li').length); // this does not work console.log($(this).next('.autocomplete li').length); 如果我只记录$(this),它将按预期

我不知道为什么,但是如果在上面的提琴中,如果您在输入中键入任何字符,然后按向下键,控制台将生成两个日志。第一个值为
3
(正确),第二个值为
0
(不正确)

我正试图根据特定的输入以元素为目标:

// this works...
console.log($('.autocomplete li').length);
// this does not work
console.log($(this).next('.autocomplete li').length);
如果我只记录
$(this)
,它将按预期返回
输入。我还尝试了
.nextAll
.find
和各种组合

为什么它找不到目标的
。下一个
元素?

这很好:

console.log($(this).next('.autocomplete').find('li').length);
您需要针对下一个
.autocomplete
,并找到
li

这很好:

console.log($(this).next('.autocomplete').find('li').length);

您需要以下一个
.autocomplete
为目标,找到
li
这是
下一个
.autocomplete
,而不是
li
。因此,过滤器将无法工作

相反,您需要使用
$(this).next('.autocomplete').find('li')

但是,您是否考虑过JS免费解决方案


美国
欧洲
日本

.autocomplete
下一个
这个
,而不是
li
。因此,过滤器将无法工作

相反,您需要使用
$(this).next('.autocomplete').find('li')

但是,您是否考虑过JS免费解决方案


美国
欧洲
日本

谢谢您的建议。我知道这与这个问题无关,但是当从AJAX请求动态填充
datalist
时,有没有一个技巧可以让它工作呢?谢谢你的建议。我知道这与这个问题无关,但是当从AJAX请求动态填充数据列表时,有没有一个技巧可以让它工作呢?