我有三个选项,如下所示:
<select name="select1" id="select1">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select>
<select name="select2" id="select2">
<option value="1">Item 1 second</option>
<option value="2">Item 2 second</option>
<option value="3">Item 3 second</option>
</select>
<select name="select3" id="select3">
<option value="1">Item 1 third</option>
<option value="2">Item 2 third</option>
<option value="3">Item 3 third</option>
</select>
用下面的代码我实现了改变第二个选择元素:
<script type="text/javascript">//<![CDATA[
$(window).load(function(){
$("#select1").change(function() {
if($(this).data('options') == undefined){
/*Taking an array of all options-2 and kind of embedding it on the select1*/
$(this).data('options',$('#select2 option, #select3 option').clone());
}
var id = $(this).val();
var options = $(this).data('options').filter('[value=' + id + ']');
$('#select2, #select3').html(options);
});
});//]]>
</script>
参见演示:http://jsfiddle.net/MNs9t/
这很好用,只是我想把select 3中的选项也改为select 1中的选项。所以我尝试了下面的代码:
<script type="text/javascript">//<![CDATA[
$(window).load(function(){
$("#select1").change(function() {
if($(this).data('options') == undefined){
/*Taking an array of all options-2 and kind of embedding it on the select1*/
$(this).data('options',$('#select2 option, #select3 option').clone());
}
var id = $(this).val();
var options = $(this).data('options').filter('[value=' + id + ']');
$('#select2, #select3').html(options);
});
});//]]>
</script>
但是这将显示两个选择项中来自select 2和select 3的所有选项,我想在select 3中做和在select 2中一样的事情...有人能帮忙吗?
参见演示:[http://jsfiddle.net/MNs9t/1/][2]
2条答案
按热度按时间r6vfmomb1#
我看到的一个问题是,您试图在select1中使用相同的键保存select2和select3中的选项引用。
演示:Fiddle
fjaof16o2#
像这样的事?
JS-jsfiddle
或者类似的东西?
JS-第一代
我不知道你到底在找什么:)