正如你会从我的小提琴下面看到,我正在努力,但需要更多的练习,一些帮助,请。
我有一个可加载多达4个div的选择框。我有第二个选择框,如果从第一个选择框中选择了一个以上的复选框,则只能显示该复选框。
我的问题是,当我将第一个选择框更改为零时,虽然它移除了第二个选择框,但它并没有删除由它加载的div。
有什么建议吗。
HTML
<html>
<div>
<label>Adults</label>
<select id='Adults'>
<option value="0" selected="selected">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
<div style='display:none;' id='1Adult'>First Adult information</div>
<div style='display:none;' id='2Adults'>Second Adult information</div>
<div style='display:none;' id='3Adults'>Third Adult information</div>
<div style='display:none;' id='4Adults'>Fourth Adult information</div>
<div style='display:none;' id='ChildSelector'>
<label>Children</label>
<select id='Children'>
<option value="0" selected="selected">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<div style='display:none;' id='1Child'>First Child information</div>
<div style='display:none;' id='2Children'>Second Child information</div>
<div style='display:none;' id='3Children'>Third Child information</div>
</html>JS $(Document).ready(函数(){$(‘#成人’).on(‘change’,function() { if ( this.value == '0') ){$(“1成人”).hide();$(“2成人”).hide();$(“3成人”).hide();$(“#4成人”).hide();$(“#儿童选择器”).hide();} if ( this.value ==‘1’‘){$(“成人#1”).show();$(“#2成人”).hide();$(“#3成人”).hide();$(“#4成人”).hide();$(“儿童选择者”).show();}否则if ( this.value == '2') {$(“1成人”).show();$(“2成人”).show();$(“3成人”).hide();$(“4成人”).hide();$(“儿童选举人”).show();}否则if ( this.value == '3') {$(“1成人”).show();$(“2成人”).show();$(“3成人”).show();$(“4成人”).hide();$(“儿童选举人”).show();}否则if ( this.value == '4') {$(“1成人”).show();$(“2成人”).show();$(“3成人”).show();$(“4成人”).show();$(“儿童选举人”).show(};}};};$(.ready)(函数(){$(‘儿童’).on(‘改变’,函数(){ if ( this.value == '0') ){$(“1儿童”).hide();$(“#2儿童”).hide();$(“#3子弟”).hide();}否则if ( this.value == '1') { $("#1Child").show();$(“#2 1Child”).hide();$(“#3 1Child”).hide();
}
else if ( this.value == '2')
{
$("#1Child").show();
$("#2Children").show();
$("#3Children").hide();
}
else if ( this.value == '3')
{
$("#1Child").show();
$("#2Children").show();
$("#3Children").show();
}
});
});http://jsfiddle.net/PeteInSpain/ytg7hey7/2/
发布于 2014-09-24 21:10:23
一种非常脏的方法是将子选择元素的值设置为0,因此它将删除元素本身。
if ( this.value == '0')
{
//...
$("#Children").val(0); //Set it back to 0
$("#Children").trigger("change"); //Call the listeners
}或者您可以重新构造HTML,以便
<div style='display:none;' id='1Child'>First Child information</div>
<div style='display:none;' id='2Children'>Second Child information</div>
<div style='display:none;' id='3Children'>Third Child information</div>块位于<div style='display:none;' id='ChildSelector'>内部。
发布于 2014-09-24 20:57:08
使用
也移除()。
$("#ChildSelector").hide().remove();http://api.jquery.com/remove/
https://stackoverflow.com/questions/26026198
复制相似问题