jQuery $('input :selected').val() 返回未定义

问题描述

我知道这可能是一个愚蠢的问题,但我在任何地方都找不到答案。

当我尝试运行此代码时:

$(() => {
    $("input.search").on('keyup',() => {
        console.log($("input.search :selected").val());
    });
});
<head>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js'
        integrity='sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg=='
        crossorigin='anonymous'></script>
</head>
<body>
  <form class="search">
      <input type="text" class="search" placeholder="Search..." name="search">
  </form>
</body>
$("input.search :selected").val() 行返回 null。这是为什么,我该如何解决? 非常感谢!

解决方法

根据 selected-selector osascriptselected 一起使用。在您的情况下,您可以使用 options 但由于您使用的是胖函数,因此 $(this) 的范围会有所不同,因此请使用事件对象来获取值

this
$(() => {
  $("input.search").on('keyup',(e) => {
    console.log(e.target.value);
  });
});