更改父选择框时如何删除 Jquery 中的旧选项
How do I remove old options in Jquery when parent select box is changed?
我有 3 个使用 jquery 和 json 的链接选择框。
根据前 2 个值,我过滤第三个值,我的代码实际上有效,但问题是当我更改前 2 个选择框的值时,第三个选择在保留旧数据的同时接收新数据。
我试图清空我的数组,但它不起作用。
$(document).ready(function() {
var json = JSON.parse(jsonString);
var makesArray = [];
var selectedyear;
var selectedcourse;
var $yearDropDown = $("#DropDown_Year");
var $course_type = $("#course_type");
$yearDropDown.change(function() {
selectedyear = this.value;
//filter based on selected year.
});
$course_type.change(function(){
selectedcourse = this.value;
makesArray = jQuery.grep(json, function(course, i) {
return course.course_type == selectedcourse && course.year_code == selectedyear;
})
var selectBox = document.getElementById('DropDown_Make');
for(var i = 0, l = makesArray.length; i < l; i++){
var option = makesArray[i];
selectBox.options.add( new Option(option.course_code, option.course_code, option.course_code) );
}
makesArray= []; //makesArray.empty();
});
});
<div id="DrpDwn">
Year:
<select id="DropDown_Year">
<option>Yıl</option>
<option value="15">2015-2016</option>
<option value="16">2016-2017</option>
</select>
<select class="form-control" id="course_type" name="course_type" required>
<option value="" selected> Choose</option>
<option value="Yos">YÖS</option>
<option value="SatMatGeo">SAT (MAT)</option>
<option value="SatCriRea">SAT (ENG)</option>
<option value="TomerABC">TÖMER (ABC)</option>
<option value="TomerAB">TÖMER (AB)</option>
<option value="TomerBC">TÖMER (BC)</option>
<option value="TomerA1A2">TÖMER (A)</option>
<option value="TomerB1B2">TÖMER (B)</option>
<option value="TomerC1C2">TÖMER (C)</option>
</select>
Make:
<select id="DropDown_Make">
<option>None</option>
</select>
</div>
这是JSFIDDLE
https://jsfiddle.net/rw7cb8c5/25/
在$course_type.change()
中使用selectBox.innerHTML = ""
DropDown_Make
设为空,如下所示。
$course_type.change(function () {
selectedcourse = this.value;
makesArray = jQuery.grep(json, function (course, i) {
return course.course_type == selectedcourse && course.year_code == selectedyear;
})
var selectBox = document.getElementById('DropDown_Make');
selectBox.innerHTML = ""; //added this line
for (var i = 0, l = makesArray.length; i < l; i++) {
var option = makesArray[i];
selectBox.options.add(new Option(option.course_code, option.course_code, option.course_code));
}
makesArray.empty();
});
更新的小提琴
相关文章:
- Jquery删除图像
- 使用jquery删除输入框上的外部处理程序/库
- jQuery 2.1 |删除重复子字符串的源子字符串
- Javascript/JQuery删除代码中的父TR问题
- 使用jQuery删除动态创建的元素上的mouseenter事件
- Jquery删除上面的br标记
- Jquery-删除单选按钮
- JQuery.删除DOM树中的上一个同级
- 使用jQuery删除部分URL
- 使用jquery删除href中的特定字符或标记
- 使用jquery删除包含的行
- 如何使用Jquery删除伪元素
- Jquery删除除粗体之外的所有内容
- jquery .删除整个 li 或 table 元素后
- 使用JQuery删除禁用的属性
- Javascript/Jquery删除和添加'onmouseover'setinterval上的事件
- 如何使用jQuery删除具有一定效果的css类
- 使用jquery删除td类
- 使用jQuery删除两个类
- 如何使用jquery删除元素