我如何从选择下拉下拆分单词并将其发送到另一个下拉列表
示例
<select class="form-control" name="Studentabsent[courseid]" id="Studentabsent_courseid">
<option value="">SelectCourse</option>
<option value="20182019">20182019</option>
<option value="20202021">20202021</option>
</select>
并将其发送到另一个选择的下拉列表
<select class="form-control" name="year" id="year">
<option value="">SelectCourse</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
</select>
感谢帮助。谢谢
您可以使用map()
从现有 select 元素生成年度列表。然后使用each()
像以下方式一样动态创建选项:
var list = $('#Studentabsent_courseid option').not(':first').map(function(i, o){
return o.value.match(/.{1,4}/g);
}).get();
$.each(list, function (i, item) {
$('#year').append($('<option>', {
value: item,
text : item
}));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="form-control" name="Studentabsent[courseid]" id="Studentabsent_courseid">
<option value="">SelectCourse</option>
<option value="20182019">20182019</option>
<option value="20202021">20202021</option>
</select>
<select class="form-control" name="year" id="year">
<option value="">SelectCourse</option>
</select>
在REGEX的帮助下,在第一个下拉列表中使用循环,将您的第一个下拉值分开,并生成下一个下拉下拉的标记并附加标记。
var html = '';
html += '<option value="">SelectCourse</option>';
$('#Studentabsent_courseid option').not(':first').each(function(index, element) {
var str = ($(this).val());
var spl = str.match(/.{4}/g);
html += "<option>" + spl[0] + "</option>"
html += "<option>" + spl[1] + "</option>"
});
$('#new').html(html);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<select class="form-control" name="Studentabsent[courseid]" id="Studentabsent_courseid">
<option value="">SelectCourse</option>
<option value="20182019">20182019</option>
<option value="20202021">20202021</option>
</select>
<select id='new'>
</select>
您可以使用jQuery这样做。
$( document ).ready(function() {
var list = [];
$("#Studentabsent_courseid option").each(function()
{
list.push($(this).val());
});
$("#Studentabsent_courseid").empty();
$("#Studentabsent_courseid").append('<option value="">SelectCourse</option>');
for(let index of list)
if(index.length > 4){
$("#Studentabsent_courseid").append('<option value="'+ index.substring(0, 4) +'">'+ index.substring(0, 4) +'</option><option value="'+ index.substring(4, index.lenght) +'">'+ index.substring(4, index.lenght) +'</option>');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="form-control" name="Studentabsent[courseid]" id="Studentabsent_courseid">
<option value="">SelectCourse</option>
<option value="20182019">20182019</option>
<option value="20202021">20202021</option>
</select>
使用纯JavaScript
进行同一工作的简单代码
function createNewDropDown(ele)
{
var selectedValue = ele.options[ele.selectedIndex].value;
var midSep = selectedValue.length/2
var firstValue = selectedValue.slice(0, 4);
var secondValue = selectedValue.slice(4, 8);
var sel = document.getElementById("year");
var opt = document.createElement("option");
opt.value = firstValue;
opt.text = firstValue;
sel.add(opt, null);
var opt = document.createElement("option");
opt.value = secondValue;
opt.text = secondValue;
sel.add(opt, null);
}
<html>
<head>
</head>
<body>
<select class="form-control" name="Studentabsent[courseid]" id="Studentabsent_courseid" onchange="createNewDropDown(this);">
<option value="">SelectCourse</option>
<option value="20182019">20182019</option>
<option value="20202021">20202021</option>
</select>
<select id='year' name='year'>
<option>Select Year</option>
</select>
</body>
</html>