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

标签 javascript jquery html css

JSFiddle

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

我正在尝试针对特定输入后的元素:

// this works...
console.log($('.autocomplete li').length);
// this does not work
console.log($(this).next('.autocomplete li').length);

如果我只记录 $(this),它会按预期返回 input。我还尝试了 .nextAll.find 和各种组合。

为什么找不到目标的 .next 元素?

最佳答案

它是 .autocomplete next to this,而不是 li。所以过滤器将不起作用。

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

但是,您是否考虑过无 JS 的解决方案?

<input type="text" list="options" />
<datalist id="options"> <!-- ^-- Same identifier -->
  <option>America</option>
  <option>Europe</option>
  <option>Japan</option>
</datalist>

关于javascript - JQuery 无法访问下一个目标元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910317/

相关文章:

javascript - 如何从 "Element"而不是 "Element.parentNode"获取 "Node & ParentNode"类型值?

javascript - Raphael JS - 维护两个对象之间的路径

javascript - 使用自定义错误退出/违背 promise

javascript - 从其他 JS 文件访问全局变量

javascript - 除了使用 xml 之外,有什么方法可以从服务器接收数据并用该数据填充 html 标签(如文本框)?如果是,那么如何?

javascript - 尝试取消绑定(bind)点击,但当我这样做时,我的 ajax 加载无法正常运行

javascript - 在新选项卡中打开相应页面时如何禁用按钮

javascript - 如何使 float div成为每行最高元素的高度

html - 如何在主 div block 中居中文本

javascript - 使用 javascript,如何通过 onclick 使 CSS 变量覆盖粘贴?