jquery - 如何删除下拉列表中的重复项,jquery
问题描述
我试图从下拉列表中删除重复项,我正在处理的数据已损坏,因此我需要在前端的下拉列表中将其删除。
$(document).ready(function () {
var usedNames = {};
$("#myDropdown").each(RemovingFunction(usedNames));
});
function RemovingFunction (usedNamesObject){
if (usedNamesObject[this.value]) {
$(this).remove();
} else {
usedNamesObject[this.value] = this.text;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="myDropdown">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="mercedes">Mercedes</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="audi">Audi</option>
<option value="audi">Audi</option>
</select>
我不知道如何使 RemovingFunction 工作,请帮助,我需要将此功能设为全局才能在我的其他下拉列表中工作
解决方案
您可以使用对象的键是唯一的这一事实来删除任何重复项。
//for an object objOpt you can iterate all the elements like so:
objOpt[ elementHTML ] = domElement
//of you have 10 similar element, in the end only one makes it to the object
$(function() {
var select = $('#myDropdown');
var objOpt = {};
select.find('option').each(function() {
objOpt[this.outerHTML] = this;
});
select.empty();
for(key in objOpt) {
select.append( objOpt[key] );
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="myDropdown">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="mercedes">Mercedes</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
<option value="audi">Audi</option>
<option value="audi">Audi</option>
</select>
推荐阅读
- amazon-web-services - vpc 和 vpc 对等模块之间的 Terraform 状态冲突
- .net - Azure Application Insights 未显示整个事件链(在事件驱动的应用程序中),但所有遥测数据都存在
- javascript - 当我使用 AWS.S3.ManagedUpload javascript 在上传文件中添加标签值时,如何防止 & 变成 &?
- javascript - Is there a react way to store a mutable class instance objects in state?
- robotframework - Robot Framework 中的退出代码 127 和 255
- .net-core - 通过 SSL 使用 .net core TestHost/TestServer 调用第三方容器:使用 Testservers CreateClient() 方法绕过 SSL 验证
- jenkins - 如何使用 withCredentials 语法将秘密文件凭据添加到詹金斯管道阶段
- python - 如何根据条件减去pandas df中的列
- html - 如何在移动设备中显示与桌面相同的 bootstrap 4 卡结构?
- .net - ILMerge.Merge :程序集 Serilog 未正确合并。它仍然在目标程序集中列为外部引用