Javascript 脚本未保留属性

Javascript 脚本未保留属性,javascript,jquery,Javascript,Jquery,搜索工作正常,问题是当我们搜索某个内容时,它会显示相应的选项,但它会删除值属性,当它删除搜索字段时,它会返回没有值的所有项目 如何修复此问题,使其在select>选项中保留值属性 jQuery(函数(){ var opts=jQuery('#list option').map(函数(){ 返回[[jQuery(this).text()]; }); jQuery('#findItem').keyup(函数(){ var rxp=new RegExp(jQuery('findItem').val(

搜索工作正常,问题是当我们搜索某个内容时,它会显示相应的
选项
,但它会删除
属性,当它删除搜索字段时,它会返回没有
的所有项目

如何修复此问题,使其在
select>选项中保留
属性

jQuery(函数(){
var opts=jQuery('#list option').map(函数(){
返回[[jQuery(this).text()];
});
jQuery('#findItem').keyup(函数(){
var rxp=new RegExp(jQuery('findItem').val(),'i');
var optlist=jQuery('#list').empty();
opts.each(函数(){
if(rxp.test(此[0])){
append(jQuery(“”).text(此[0]);
}
});
});
});
select,
输入{
宽度:200px;
}

苹果
香蕉
橙色
几维鸟


检查
选项中的返回,它将返回一个包含文本和选项值的数组
返回[[jQuery(this.text(),jQuery(this.val()]


因此,您可以将值添加到这里
optlist.append(jQuery(“”).text(this[0]).val(this[1])

jQuery(函数(){
var opts=jQuery('#list option').map(函数(){
返回[[jQuery(this.text(),jQuery(this.val()]];
});
jQuery('#findItem').keyup(函数(){
var rxp=new RegExp(jQuery('findItem').val(),'i');
var optlist=jQuery('#list').empty();
opts.each(函数(){
console.log(这个)
if(rxp.test(此[0])){
optlist.append(jQuery(“”).text(此[0]).val(此[1]);
}
});
});
});
select,
输入{
宽度:200px;
}

苹果
香蕉
橙色
几维鸟


问题在于您正在销毁原始元素及其属性,并在没有任何属性的情况下附加新元素

要解决此问题,您可以将所有原始
选项
元素存储在一个变量中,然后使用
filter()
匹配包含输入文本的元素,并
append()
将它们返回到
选择
。试试这个:

jQuery(函数($){
var$opts=$(“#列表选项”);
$('#findItem').keyup(函数(){
var rxp=new RegExp($('findItem').val(),'i');
var optlist=$('#list').empty();
$opts.filter(函数(){
返回rxp.test($(this.text());
}).appendTo(“#list”);
});
});
select,
输入{
宽度:200px;
}

苹果
香蕉
橙色
几维鸟


我看不出您在设置值