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

Posted

技术标签:

【中文标题】jQuery $(\'input :selected\').val() 返回未定义【英文标题】:jQuery $('input :selected').val() returns undefinedjQuery $('input :selected').val() 返回未定义 【发布时间】:2021-05-16 18:16:12 【问题描述】:

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

当我尝试运行这段代码时:

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

【问题讨论】:

删除空格 尝试从选择器中删除空格,因为这表明要搜索子元素input.search:selected。请注意,尽管您可以只包含事件对象并从中获取触发事件的元素,即(e)=&gt; console.log(e.target.value); 而不是进行另一个查找 【参考方案1】:

根据selected-selector selectedoptions 一起使用。在您的情况下,您可以使用$(this),但由于您使用的是胖函数,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>

【讨论】:

以上是关于jQuery $('input :selected').val() 返回未定义的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery 中将 <select> 标签更改为 <input>

jquery 获取及设置input各种类型的值

jquery 获取及设置input各种类型的值 (转)

jquery获取input表单值的代码

Jquery chosen select默认值为之前选择input值

JQuery 之 获取 radio选中值,select选中值