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)=> console.log(e.target.value);
而不是进行另一个查找
【参考方案1】:
根据selected-selector selected
与options
一起使用。在您的情况下,您可以使用$(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>