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

jQuery $('input :selected').val() returns undefined

我知道这可能是个愚蠢的问题,但我找不到答案。

当我尝试 运行 此代码时:

$(() => {
    $("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() returns 行为空。为什么会这样,我该如何解决? 非常感谢!

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

$(() => {
  $("input.search").on('keyup', (e) => {
    console.log(e.target.value);
  });
});
<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>