从列表javascript中删除选择值

Removing a select value from a list javascript

本文关键字:选择 删除 列表 javascript      更新时间:2023-09-26

我目前有一个从Json数组填充的dorp下拉列表,这很好,但当我编辑我的选择时,我需要删除已经选择的选项,这样它就不会出现两次

for (i = 0; i < datain.length; i++) {
    if (datain[i].Name == course) {
        selectedCourseId = datain[i].Id;
        selectedCourseName = datain[i].Name;
    }
    $('#EditCourseSelect').append($('<option></option>').attr("value", datain[i].Id).text(datain[i].Name));
}
$('#EditCourseSelect').prepend("<option value=" + selectedCourseId + " selected='selected'>" + selectedCourseName + "</option>");

如有任何帮助,将不胜感激

您可能只需要避免在for循环中创建它,这样就不必在中删除它

for (i = 0; i < datain.length; i++) {
    if (datain[i].Name == course) {
        selectedCourseId = datain[i].Id;
        selectedCourseName = datain[i].Name;
    } else {
        $('#EditCourseSelect').append($('<option></option>').attr("value", datain[i].Id).text(datain[i].Name));
    }
}
$('#EditCourseSelect').prepend("<option value=" + selectedCourseId + " selected='selected'>" + selectedCourseName + "</option>");

只需使用CSS selector

$('#EditCourseSelect option:selected').remove()

或使用jQuery .find()

$('#EditCourseSelect').find("option:selected").remove()

.remove()

在我为你做的笔中测试

在为下拉列表创建选项时,可以避免添加重复记录。最好不要加两次,而不是加两次就去掉一次。这是一把正在工作的小提琴。

var datain = [{'Id': 1, 'Name': 'jQuery'}, {'Id': 2, 'Name': 'PHP'}, {'Id': 3, 'Name': 'JavaScript'}, {'Id': 4, 'Name': 'HTML5'}, {'Id': 5, 'Name': 'CSS3'}];
var course = 'CSS3';
for (i = 0; i < datain.length; i++) {
    if (datain[i].Name == course) {
        $('#EditCourseSelect').append($('<option></option>').attr("value", datain[i].Id).prop('selected', true).text(datain[i].Name));
    } else {
        $('#EditCourseSelect').append($('<option></option>').attr("value", datain[i].Id).text(datain[i].Name));
    }
}

如果您传递的course与循环中的Name匹配,则只添加prop('selected', true)作为额外选项,否则不添加。