我遇到了一个问题,我想删除选定列表之后的所有列表。我在这里创建了JS Fiddle,但它不起作用。例如,如果我从第一个下拉菜单中选择项目,那么接下来的两个应该被删除,或者如果我从第二个下拉菜单中选择,那么第三个应该被删除。
HTML
<div id='levels'>
<select id="level" class="parent" name="data[level][]">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="level" class="parent" name="data[level][]">
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="level" class="parent" name="data[level][]">
<option value="5">5</option>
<option value="6">6</option>
</select>
</div>
Javascript
$("#levels").on('change', function() {
$(this).nextAll().remove();
});
我想在不为每个列表分配不同的类名或 div 名称的情况下实现这一点。
Cakephp 代码
主文件
<script type="text/javascript">
$(document).ready(function() {
$("select").on('change', function() {
$(this).nextAll('select').remove();
$("<div>").load('/dashboard/details/show_levels',function() {
$("#levels").append($(this).html());
});
})
<div id=levels>
<?php echo $form->input('level',array('options'=>$level,'type'=>'select','scroabble'=>true,'multiple'=>true, 'class'=>'parent')); ?>
</div>
});
显示级别
<?php
$abc=array('a','b','c','d');
echo $form->input('level',array('options'=>$abc,'type'=>'select','scroabble'=>true,'multiple'=>true, 'class'=>'parent')); ?>
更新:
以下解决方案对我有用
更换
$(this).nextAll('select').remove();
和
$(this).parents().nextUntil().remove();
不知道它是如何工作的,两者之间有什么区别。