【发布时间】:2020-08-09 17:04:29
【问题描述】:
我根据第一个选择创建了两个要填充的块。此时,只有第一个块是自填充的。 我希望两个块独立工作。 谢谢。
PS: div.block 的数量是动态的,可以多于或少于两个块
cars = new Array("Mercedes", "Volvo", "BMW", "porche");
phones = new Array('Samsung', 'Nokia', 'Iphone');
names = new Array('Kasper', 'Elke', 'Fred', 'Bobby', 'Frits');
colors = new Array('blue', 'green', 'yellow');
populateSelect();
$(function() {
$('#cat').change(function() {
populateSelect();
});
});
function populateSelect() {
cat = $('#cat').val();
$('#item').html('');
eval(cat).forEach(function(t) {
$('#item').append('<option>' + t + '</option>');
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="block">
<select id="cat">
<option val="cars">cars</option>
<option val="phones">phones</option>
</select>
<select id="item">
</select>
</div>
<div class="block">
<select id="cat">
<option val="names">names</option>
<option val="colors">colors</option>
</select>
<select id="item">
</select>
</div>
【问题讨论】:
-
eval 在这里做什么?这是不对的……ID 也必须是唯一的
-
块的数量是动态的,可以多于或少于两个块。
-
我无法让它工作。你能用它做一个 JSFiddle 吗?
标签: javascript jquery arrays select each