我有两个有选项的列表菜单
见生活在这里Js Fiddle生活
F-1 =州F-2 =每一州有2,3条截距.
当有人从F-1中选择任何状态时,F-2只会显示相同的状态,如果是2或3,我想这样做。
示例:从F-1中选择Albama,显示只有Albama状态,产品在F-2中
$('#shipping_state').on('change', function() {
// Do something to refresh F-2 for loading original innerHTML
var getNme = $('#shipping_state option:selected').text(); // get state text from F-1
$( ".shipMethod option").not(":contains('" + getNme + "')").each(function(){ // check state is in F-2 exists
$(this).remove();
});
});
第一次,当我从F-2中选择任何状态时,F-2显示出确切的状态,但是当我选择另一状态时,F-2隐藏所有事情.这是因为我使用contains来匹配F-2和第一次它的查找,但是第二次,所有的状态都隐藏,然后选择的状态,所以包含jquery不工作。
当onchange应用于F1或其他我可以为其做的事情时,是否可以刷新F2,但我不能添加load外部URL。
发布于 2014-02-21 17:24:31
应该这样做:http://jsfiddle.net/9WEqD/12/ (选择阿拉巴马州,然后是亚利桑那州)
我没有时间更新每个元素,但我向.shipping_state options data-state="STATE_ABBR"
添加了另一个属性,并在它们与#shipping_state值匹配时选择合适的选项。如果您只想缩小可用选项的范围,可以将其更改为使用filter
。
发布于 2014-02-21 17:24:57
您可以使用remove()方法,它完全删除选项节点。您想要的是使用show()方法并隐藏()方法。
$('#shipping_state').on('change', function() {
// Do something to refresh F-2 for
var getNme = $('#shipping_state option:selected').text(); // get state text from F-1
$( ".shipMethod option").show();
$( ".shipMethod option").not(":contains('" + getNme + "')").each(function(){ // check state is in F-2 exists
$(this).hide();
});
});
发布于 2014-02-21 17:38:24
有点像http://jsfiddle.net/9WEqD/7/。对代码的小修改,选项将被隐藏而不是删除。
$('#shipping_state').on('change', function() {
var getNme = $('#shipping_state option:selected').text(); // get state text from F-1
$( ".shipMethod option").show().not(":contains('" + getNme + "')").hide();//show all then hide
$("#shipping_method_0").val("");//select empty option by default
});
https://stackoverflow.com/questions/21940830
复制相似问题