Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript列表中删除选择值_Javascript_Jquery - Fatal编程技术网

从javascript列表中删除选择值

从javascript列表中删除选择值,javascript,jquery,Javascript,Jquery,我目前有一个从Json数组填充的dorp下拉列表,这很好,但是当我编辑我的选择时,我需要删除已经选择的选项,这样它就不会出现两次 for (i = 0; i < datain.length; i++) { if (datain[i].Name == course) { selectedCourseId = datain[i].Id; selectedCourseName = datain[i].Name; } $('#EditCour

我目前有一个从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>");
任何帮助都将不胜感激

只需使用CSS选择器即可

或者使用jQuery


在我为您制作的中测试它

您可能只需要避免在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>");

在为下拉列表创建选项时,可以避免添加重复记录。最好不要添加两次,而不是添加两次再删除一次。这是一张工作票


如果您通过的课程与循环中的名称匹配,则只需添加prop'selected',true作为额外选项,否则不为。

此处您总是将所选项目作为第一个选项添加。如果需要按照JSON数组中的顺序显示下拉选项,则不会以这种方式处理。当你循环每个项目时,在循环内处理它比在循环外添加它更合适。无论如何,欧普接受了答案!我只想提到关于订单的问题。@DeepakBiswal虽然你的评论是相关的,但它实际上不在问题imho的范围之内
$('#EditCourseSelect').find("option:selected").remove()
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>");
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));
    }
}