javascript - 脚本没有保留属性
问题描述
搜索工作正常,问题是当我们搜索某些东西时,它会显示相应的option
但它会删除value
属性,当它删除搜索字段时它会返回所有不带value
.
我该如何解决这个问题,以便将value
属性保留在 中select > option
?
jQuery(function() {
var opts = jQuery('#list option').map(function() {
return [[jQuery(this).text()]];
});
jQuery('#findItem').keyup(function() {
var rxp = new RegExp(jQuery('#findItem').val(), 'i');
var optlist = jQuery('#list').empty();
opts.each(function() {
if (rxp.test(this[0])) {
optlist.append(jQuery('<option/>').text(this[0]));
}
});
});
});
select,
input {
width: 200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select multiple="multiple" id="list" size="10">
<option value="1">Apple</option>
<option value="2">Banana</option>
<option value="3">Orange</option>
<option value="4">Kiwi</option>
</select><br>
<input type="text" id="findItem">
解决方案
检查返回opts
,它将返回一个包含文本和选项值的数组。return [[jQuery(this).text(), jQuery(this).val()]];
因此,您可以在此处附加值optlist.append(jQuery('<option/>').text(this[0]).val(this[1]));
jQuery(function() {
var opts = jQuery('#list option').map(function() {
return [[jQuery(this).text(), jQuery(this).val()]];
});
jQuery('#findItem').keyup(function() {
var rxp = new RegExp(jQuery('#findItem').val(), 'i');
var optlist = jQuery('#list').empty();
opts.each(function() {
console.log(this)
if (rxp.test(this[0])) {
optlist.append(jQuery('<option/>').text(this[0]).val(this[1]));
}
});
});
});
select,
input {
width: 200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select multiple="multiple" id="list" size="10">
<option value="1">Apple</option>
<option value="2">Banana</option>
<option value="3">Orange</option>
<option value="4">Kiwi</option>
</select><br>
<input type="text" id="findItem">
推荐阅读
- android - 如何动态处理动态多个嵌套选项卡布局片段?
- java - 如何在 JavaEE 项目中管理 Firebase 身份验证?
- python - Python Quicksort 算法排序不正确
- c# - 循环遍历通用 LinkedList 时 C# 访问项属性
- aws-lambda - SQS get_queue_by_name 在 AWS Lambda 中找不到队列
- regex - 如何从 hive 中的 DNS 数据中提取域
- reactjs - 在 componentdidmount 事件中获取预期的声明或语句
- reactjs - 在 React js 中删除特定子项的问题
- sql-server - SQL Report Builder:如何在 SSRS 中使用 WHERE 子句的功能?
- sql - 使用带有 NOT LIKE 的 SELECT 语句。我想从一列中排除多个值,但 SQLite 不支持 REGEX